Project Messenger is a messaging application developed as part of a Bachelor's thesis project. The application is designed to provide secure, efficient, and user-friendly communication through a real-time messaging platform. It is built with modern web technologies and offers various features for seamless user interaction.
The Project Messenger was created as a part of my BSc thesis, aimed at developing a robust messaging application that emphasizes security and user experience. The application allows users to send and receive messages in real-time, supporting both individual and group chats. The project explores various aspects of software engineering, including front-end and back-end development, database management, and security practices.
- Real-time Messaging: Send and receive messages instantly with real-time updates.
- User Authentication: Secure user registration and login system.
- Group Chats: Create and manage group conversations with multiple users.
- Message Encryption: Ensure the privacy and security of messages with encryption.
- File Sharing: Share files with other users directly within the chat.
- Notifications: Get notified of new messages even when the app is minimized.
- Responsive Design: Accessible across various devices and screen sizes.
- Frontend: React, Redux, HTML, CSS, JavaScript
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JWT (JSON Web Tokens)
- Real-time Communication: Socket.IO
- File Storage: Multer, GridFS
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/danikova/project-messenger.git
-
Navigate to the project directory:
cd project-messenger
-
Install the required dependencies:
npm install
-
Set up environment variables:
- Create a
.env
file in the root directory. - Add the necessary environment variables (e.g., database connection string, JWT secret).
- Create a
-
Run the application:
npm start
-
Access the application:
- The app should be running at
http://localhost:3000
.
- The app should be running at
- Sign Up/Login: Register a new account or log in with existing credentials.
- Start a Chat: Select a user to start a one-on-one conversation or create a group chat.
- Send Messages: Type your message in the chat window and hit enter to send it.
- File Sharing: Use the attachment button to share files in the chat.
- Group Management: Add or remove users from group chats as needed.
This project is licensed under the MIT License - see the LICENSE file for details.