The Messenger Application is a modern and secure messaging platform that leverages cutting-edge web technologies to provide real-time communication and a seamless user experience. The application is designed to be fast, reliable, and easy to use, with a focus on privacy and security.
Our objective is to provide a robust and feature-rich messaging platform that caters to the needs of individuals and organizations. The application includes the following key features:
- Real-time messaging with instant notifications.
- Secure user authentication and data storage.
- Integration with cloud services for media storage.
- Responsive and user-friendly interface.
- Support for various message types, including text, images, and files.
- Real-time Messaging: Powered by Pusher and WebSockets for instant communication.
- User Authentication: Secure authentication using NextAuth and bcrypt for password hashing.
- Media Uploads: Integration with Cloudinary for image and file storage.
- State Management: Efficient state management using Zustand.
- Forms Handling: Easy form management with react-hook-form.
- Notifications: Real-time toast notifications using react-hot-toast.
- Custom Styling: Tailwind CSS for styling and responsive design.
The project leverages a powerful technological stack, including:
- Frontend: Next.js, React, Tailwind CSS
- Backend: Next.js API Routes, Prisma ORM
- Database: PostgreSQL (via Prisma)
- Authentication: NextAuth.js
- Real-time Communication: Pusher, Pusher.js
- Form Management: react-hook-form
- Notifications: react-hot-toast
- Media Storage: Cloudinary
- State Management: Zustand
- Clone the repository:
git clone https://github.com/your-repo/messenger-app.git - Navigate to the project directory:
cd messenger-app - Create a
.envfile based on the provided.env.exampleand configure your environment variables.
- Install the required dependencies:
npm install
- Install the Prisma CLI:
npx prisma - Run the Prisma migrations to set up your database:
npx prisma migrate dev - Generate Prisma client:
npx prisma generate
- Start the development server:
npm run dev - The app should now be running on
http://localhost:3000.
- Build the Docker image:
docker build -t messenger-app .
- Run the Docker container:
docker run -p 3000:3000 messenger-app - The app will be accessible at
http://localhost:3000.
For detailed usage instructions and examples, please refer to the User Guide.
We welcome contributions from the community. If you'd like to contribute to our project, please refer to our Contribution Guidelines.
This project is licensed under the MIT License.