This project is a real-time chat application built with Next.js, offering features like custom chat rooms, user-selected usernames, and light/dark theme support. While login functionality is planned, it has not yet been implemented.
- Users can create and join chat rooms.
- Messages are sent and received in real time using Socket.IO.
- Users can select their own usernames.
- Chat rooms can be named by users.
- Light and dark mode support for improved user experience.
- Login functionality for persistent user accounts.
- Next.js: React framework for building the app.
- React: Core library for UI components.
- React DOM: Handles DOM rendering for React.
- React Icons: Provides a set of reusable icons.
- React Pro Sidebar: Sidebar navigation for chat rooms and settings.
- Next Themes: Handles light/dark mode toggling.
- Heroicons: A collection of SVG icons.
- Socket.IO: Enables real-time communication between clients and server.
- MongoDB: Database for storing chat data and room information.
- @auth/mongodb-adapter: Authentication adapter for MongoDB (login functionality planned).
- CORS: Middleware for handling cross-origin resource sharing.
- TailwindCSS: CSS framework for styling.
- Tailwind Scrollbar: Custom scrollbar styling.
- PostCSS: CSS post-processing tool for added flexibility.
- Node.js >= 16.8.0
- npm or yarn
- MongoDB instance for backend data storage
- Clone the repository:
git clone <repository-url>
- Navigate to the project directory:
cd nextjs-course - Install dependencies:
npm install
- Start the development server:
npm run dev
- Open your browser and navigate to
http://localhost:3000.
npm run dev: Starts the development server.npm run build: Builds the application for production.npm run start: Starts the production server.
- Implement user authentication with NextAuth.
- Add persistent user profiles and room history.
- Enhance chat room UI with additional features like user lists and notifications.
- Optimize the app for better scalability and performance.
This project is open-source and available under the MIT License.
- Open-source libraries and tools used in this project.
- MongoDB for database support.
- Socket.IO for enabling real-time communication.