Welcome to the FullStack Chat Room Project! This is a real-time chat application built with modern web technologies, enabling seamless communication between users. Dive into the codebase or spin up the project to see it in action! 🌟
- Real-Time Communication: Powered by Socket.IO for instant messaging.
- Responsive UI: Built with React and TailwindCSS for a sleek and adaptive design.
- Authentication: Secure user login and session management.
- Emoji Support: Add fun to your messages with the emoji picker! 😄
- Theme Customization: Switch between light and dark themes effortlessly.
- Database-Driven: PostgreSQL with Drizzle ORM for robust data management.
- React: Core framework for building the user interface.
- TailwindCSS: For beautiful and customizable styles.
- Socket.IO Client: Enables real-time communication.
- TypeScript: Ensures type safety and better development experience.
- Node.js & Express: Backend framework for handling server logic.
- Socket.IO: Real-time WebSocket communication.
- Drizzle ORM: Simplifies database queries with PostgreSQL.
- JWT: Secure authentication and authorization.
- bcryptjs: Password hashing for secure storage.
Ensure you have the following installed:
- Node.js: v16 or later
- PostgreSQL: Database for storing chat data
- npm or yarn: Package manager
-
Clone the repository:
git clone https://github.com/alirezashn79/chat-room.git cd chat-room
-
Install dependencies for both frontend and backend:
cd front npm install cd ../back npm install
-
Set up environment variables:
- Copy
.env.example
to.env
in theback
directory. - Add your database credentials, JWT secret, and other configs.
- Copy
-
Initialize the database:
npm run generate npm run migrate
- Frontend:
cd front npm run dev
- Backend:
cd back npm run dev
Visit http://localhost:3000
to see the app in action! 🎉
src/components
: Reusable UI componentssrc/pages
: Page-level componentssrc/hooks
: Custom React hookstailwind.config.js
: TailwindCSS configuration
src/routes
: API endpointssrc/db
: Database schemas and migrationssrc/middleware
: Authentication and error handling
We welcome contributions! Follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
. - Commit your changes:
git commit -m 'Add new feature'
. - Push to the branch:
git push origin feature-name
. - Open a pull request.
This project is licensed under the ISC License. Feel free to use, modify, and distribute as needed.
Alirezashn79
Feel free to reach out for any questions or collaboration opportunities! ✨
Thanks to all the contributors and the open-source community for their amazing work! 🙌