Taimuchatto is a full-stack chat application that allows users to communicate in real-time. This project is built using the MERN stack and other modern web technologies.
- Real-time Messaging: Send and receive messages instantly using Socket.io.
- User Authentication: Secure registration and login system using JWT (JSON Web Tokens).
- Profile Management: Users can view and manage their profile information.
- User Search: Ability to search for and find other users within the platform.
- Responsive Design: Works seamlessly across desktop and mobile devices.
- Modern UI/UX: Clean interface built with Tailwind CSS.
- Frontend:
- React.js - Modern JavaScript library for building user interfaces
- Tailwind CSS - Utility-first CSS framework
- Vite.js - Next-generation frontend build tool
- Socket.io Client - Real-time bidirectional event-based communication
- Backend:
- Node.js - JavaScript runtime environment
- Express.js - Web application framework for Node.js
- MongoDB (with Mongoose) - NoSQL database and ODM
- Socket.io - Real-time engine for cross-platform communication
- JSON Web Token (JWT) - For secure authentication and authorization
- Bcrypt.js - For password hashing
- Dotenv - For environment variable management
To get a local copy up and running, follow these simple steps.
- Node.js (version 16 or higher)
- npm or yarn package manager
- MongoDB (either local installation or cloud Atlas)
-
Clone the repository:
git clone https://github.com/bondanbanuaji/taimuchatto.git cd taimuchatto -
Backend Setup:
cd backend npm installCreate a
.envfile in thebackenddirectory and add the following variables from theexample.env:PORT=5000 MONGO_URI="your_mongodb_connection_string" JWT_SECRET="your_strong_jwt_secret" JWT_EXPIRE="7d"
-
Frontend Setup:
cd ../frontend npm installCreate a
.envfile in thefrontenddirectory if needed for any frontend-specific variables.
-
Start the Backend Server: Open a terminal in the
backenddirectory and run:npm start # or if using nodemon for development npm run devThe server will run on
http://localhost:5000(or your specified port). -
Start the Frontend Application: Open another terminal in the
frontenddirectory and run:npm run dev
The React application will run on
http://localhost:5173(or another available port).
taimuchatto/
βββ backend/
β βββ src/
β β βββ controllers/ # Request handlers
β β βββ models/ # Database schemas
β β βββ routes/ # API route definitions
β β βββ middleware/ # Authentication and validation middleware
β β βββ utils/ # Utility functions
β βββ package.json
β βββ .env
βββ frontend/
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ context/ # React context providers
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API service functions
β β βββ assets/ # Static assets
β βββ public/
β βββ package.json
β βββ .env
βββ README.md
βββ LICENSE
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Occasional connection issues with Socket.io in unstable network conditions
- UI responsiveness could be improved on certain mobile devices
Distributed under the MIT License. See LICENSE for more information.
Bondan Banuaji
- GitHub: bondanbanuaji