- Description
- Technologies Used
- Features
- SignalR Library
- Layered Architecture
- Installation
- Contributing
- License
- Contact
Real Chat Website is a modern chat application that allows users to have real-time conversations with each other. The project is built using .NET Core for the backend API and ReactJS for the frontend.
The main focus of this project is to demonstrate the integration of the SignalR library, which enables real-time communication between clients and the server. Users can register, log in, send and receive messages in real time, and more.
- SignalR
- AutoMapper
- Authentication and Authorization (JWT)
- File Handling
- Cloudinary (Cloud Service)
- RESTful API
The project uses SQL Server as the database to store user information, chat messages, and related data. SQL Server provides robust data management capabilities and ensures data integrity. Additionally, the project utilizes Cloudinary, a cloud service, to handle user profile photos. Cloudinary allows users to upload, store, and retrieve images easily.
- Material UI
- Microsoft SignalR
- User Registration and Login: Users can create accounts and log in to access the chat functionality.
IMG_5594.MP4
- Update User Settings: Users can update their profile information, including profile photos and passwords.
IMG_5595.MP4
-
User Status: Users can see the online status of other users, indicating if they are currently online or not.
-
Dark Mode and Light Mode: Users can switch between dark and light themes based on their preference.
DarkMode.mp4
- Search People: Users can search for other people based on text input, with backend search functionality.
- View People Information: Users can view information about other registered users.
IMG_5596.MP4
-
Messages History: The chat stores message history with pagination, allowing users to scroll through past messages.
-
Real-Time Chatting: Users can send and receive messages in real time using SignalR.
-
Recent Chats: Users can see a list of recent chats with the last message displayed for each one.
-
Message Notifications: Users receive notifications for new messages when the chat is not currently selected.
IMG_5597.MP4
Responsive Design: The website is designed to be responsive and work smoothly on various screen sizes.
SignalR is a real-time communication library for .NET that enables real-time functionality for web applications. It allows server-side code to push content to connected clients instantly. In this project, SignalR is utilized to achieve real-time chatting, enabling users to exchange messages seamlessly.
For more information about SignalR, visit the SignalR documentation.
The .NET backend of this project is designed using a layered architecture to promote the separation of concerns and maintainability. The architecture typically consists of the following layers:
- Presentation Layer
- Business Layer
- Persistence Layer
The layered architecture helps organize the codebase and makes it easier to maintain and extend the project.
To run this project locally, follow these steps:
- Clone the repository:
git clone https://github.com/yourusername/real-chat-website.git
- Navigate to the project directory for both the backend and front end.
- Install backend dependencies:
dotnet restore
- Start the backend server:
dotnet run
- Install frontend dependencies:
npm install
- Start the frontend development server:
npm start
- Open your browser and go to
http://localhost:3000
to access the website.
Contributions to this project are welcome! If you find any bugs or have suggestions for improvement, please feel free to open an issue or submit a pull request.
- Fork the project.
- Create your feature branch:
git checkout -b feature/my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin feature/my-new-feature
- Submit a pull request.
This project is licensed under the MIT License.
If you have any questions or feedback regarding this project, you can reach me at: