A modern Next.js application with Redux state management, featuring a chat interface with image upload capabilities, particle animations, and a comprehensive dashboard.
- Project Structure
- Features
- Prerequisites
- Installation
- Running the Application
- Building for Production
- Technologies Used
isro_frontend/
βββ public/ # Static assets
βββ src/
β βββ app/ # Next.js App Router
β β βββ globals.css # Global styles
β β βββ layout.tsx # Root layout component
β β βββ page.tsx # Chat page
β β βββ StoreProvider.tsx # Redux store provider
β β βββ home/
β β βββ page.jsx # Homes page
β β
β βββ components/ # React components
β β βββ chat/ # Chat-related components
β β β βββ ChatWindow.tsx # Main chat interface
β β β βββ ImageUploader.tsx # Image upload component
β β β βββ ImageViewer.tsx # Image display component
β β β βββ MessageBubble.tsx # Individual message component
β β β
β β βββ home/ # Home page components
β β β βββ Dashboard.jsx # Main dashboard
β β β βββ FAQSection.jsx # FAQ section
β β β βββ Footer.jsx # Footer component
β β β βββ Header.jsx # Header component
β β β βββ HeroSection.jsx # Hero section
β β β βββ MaximizeSection.jsx # Feature showcase
β β β βββ TestimonialSection.jsx # User testimonials
β β β βββ TrustedSection.jsx # Trust indicators
β β β
β β βββ layout/ # Layout components
β β β βββ Header.tsx # App header
β β β βββ RightSidebar.tsx # Right sidebar
β β β βββ SessionInitializer.tsx # Session management
β β β βββ SettingsModal.tsx # Settings modal
β β β βββ Sidebar.tsx # Left sidebar
β β β
β β βββ ui/ # UI utility components
β β βββ ConfirmationModal.tsx # Confirmation dialogs
β β βββ ParticleBackground.tsx # Particle effect background
β β
β βββ lib/ # Core library code
β β βββ hooks.ts # Custom React hooks
β β βββ store.ts # Redux store configuration
β β βββ utils.ts # Utility functions
β β βββ features/ # Redux features
β β βββ api/
β β β βββ apiSlice.ts # RTK Query API configuration
β β βββ chat/
β β βββ chatSlice.ts # Chat state management
β β
β βββ types/ # TypeScript type definitions
β βββ index.ts # Shared types and interfaces
β
βββ eslint.config.mjs # ESLint configuration
βββ next.config.ts # Next.js configuration
βββ next-env.d.ts # Next.js TypeScript declarations
βββ package.json # Project dependencies
βββ postcss.config.mjs # PostCSS configuration
βββ tsconfig.json # TypeScript configuration
βββ vercel.json # Vercel deployment config
βββ README.md # This file
- Modern Next.js 16: Utilizes the latest App Router architecture
- Redux Toolkit: Centralized state management with Redux Toolkit and RTK Query
- Chat Interface: Interactive chat with message history and image support
- Image Upload: Upload and view images within conversations
- Particle Animations: Beautiful background particle effects
- Responsive Design: Layout with Tailwind CSS
- TypeScript: Full type safety across the application
- Session Management: Persistent chat sessions with unique identifiers
- Modal System: Settings and confirmation modals
Before you begin, ensure you have the following installed:
- Node.js: Version 20.x or higher (LTS recommended)
- npm: Version 10.x or higher (comes with Node.js)
- Alternatively, you can use yarn, pnpm, or bun
To check your current versions:
node --version
npm --version- Clone the repository (if you haven't already):
git clone https://github.com/red345686/isro_frontend.git
cd isro_frontend- Install dependencies:
npm installOr using alternative package managers:
# Using Yarn
yarn install
# Using pnpm
pnpm install
# Using Bun
bun installStart the development server with hot-reload:
npm run devOr using alternative package managers:
yarn dev # Using Yarn
pnpm dev # Using pnpm
bun dev # Using BunThe application will be available at:
- Local: http://localhost:3000
- Network: Your local IP address on port 3000
Create an optimized production build:
npm run buildThis command:
- Compiles TypeScript to JavaScript
- Optimizes React components
- Generates static pages where possible
- Minifies and bundles assets
- Creates a
.nextdirectory with the production build
After building, start the production server:
npm startThe production server will run at http://localhost:3000
Check code quality with ESLint:
npm run lint- Next.js 16.0.3: React framework with App Router
- React 19.2.0: UI library
- TypeScript 5.x: Type-safe JavaScript
- Redux Toolkit 2.10.1: State management
- React Redux 9.2.0: React bindings for Redux
- RTK Query: Data fetching and caching
- Tailwind CSS 4.x: Utility-first CSS framework
- PostCSS: CSS processing
- clsx & tailwind-merge: Conditional class utilities
- Lucide React: Icon library
- React TSParticles: Particle animation effects
- UUID: Unique identifier generation
- TypeScript Types: Enhanced type definitions
- ESLint: Code linting
- Next.js ESLint Config: Next.js specific linting rules
The application is deployed and accessible at:
π https://isro-frontend-eta.vercel.app/
This project uses the following open-source libraries and frameworks:
- Next.js - React framework by Vercel
- React - JavaScript library for building user interfaces
- Redux Toolkit - Official Redux toolset
- React Redux - Official React bindings for Redux
- Tailwind CSS - Utility-first CSS framework
- TypeScript - Typed JavaScript at Any Scale
- Lucide React - Beautiful & consistent icon toolkit
- TSParticles - Lightweight particles engine
- clsx - Tiny utility for constructing className strings
- tailwind-merge - Merge Tailwind CSS classes
- uuid - RFC4122 UUID generator
- ESLint - Pluggable JavaScript linter
All copyrights and licenses of these dependencies are retained by their respective owners.