A real-time chat application built with .NET and React, designed for seamless communication.
Gutargu is a simple real-time chat application. This project serves as a sample implementation showcasing basic messaging functionality like real-time messaging, user presence status, and message persistence. It's intended for learning and experimentation, offering a fun way to explore real-time communication in web apps.
Here are some screenshots of the app in action:
Ensure you have the following installed on your system:
- .NET 9 SDK
- Node.js
- npm or yarn (for frontend dependencies)
To get started with the Gutargu application, follow these steps:
git clone https://github.com/ddas09/gutargu.git
cd gutargu-
Navigate to the backend directory:
cd gutargu-backend -
Restore the .NET dependencies:
dotnet restore
-
Setup DB connection:
Update the connection string in the
appsettings.development.jsonfile with your PostgreSQL database credentials.{ "ConnectionStrings": { "GutarguDB": "Host=localhost;Port=5432;Database=<your_db_name>;Username=<your_pgadmin_username>;Password=<your_pgadmin_password>" } } -
Apply the database migrations:
Run following command from the root directory of your backend project -
dotnet ef database update
-
Create uplods/images directory in the gutargu-backend folder. This is required to serve static files(images) for now. We will find a fix for this later.
-
Run the .NET backend:
dotnet run
This will start the backend server, which will be accessible on http://localhost:5000.
-
Navigate to the frontend directory:
cd ../gutargu-frontend -
Install frontend dependencies:
npm install
-
Setup the env variables:
Add the following line to set the backend API URL (VITE_API_BASE_URL):
VITE_API_BASE_URL=http://localhost:5158/api
-
Run the React development server:
npm run dev
The frontend application should now be running on http://localhost:3000.
Backend: The API will be available at http://localhost:5158. This serves the real-time messaging features and handles user connections.
Frontend: The user interface will be available at http://localhost:5173. You can send and receive messages in real-time from this interface.
Gutargu/
├── gutargu-backend/ # Backend code (API)
│ ├── API/ # Public API Layer containing controllers
│ ├── Common/ # Common Enums, Constatns, Exceptions
│ ├── DAL/ # Data Access Layer Code
│ ├── Services/ # Business logic (e.g., user auth, manage chats)
│ ├── Properties/ # Project properties (e.g., debugging, build settings)
│ ├── appsettings.json # Configuration settings
│ ├── appsettings.Development.json # Development-specific settings
│ ├── Program.cs # Application entry point
│ ├── gutargu-backend.csproj # Backend project file
│
├── gutargu-frontend/ # Frontend code (React)
│ ├── public/ # Static assets (images, fonts, etc.)
│ ├── src/ # React components and views
│ │ ├── components/ # Reusable components
│ │ └── services/ # FE services (e.g., API service)
│ ├── package.json # Frontend dependencies
│ ├── tsconfig.json # TypeScript configuration
│ ├── tsconfig.app.json # Application-specific TypeScript config
│ ├── tsconfig.node.json # Node.js-specific TypeScript config
│ └── vite.config.ts # Vite config for frontend build
│
├── README.md # Project documentation
├── Screenshots # Project screenshots- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature
- Make your changes.
- Commit your changes
git commit -a 'Add new feature' - Push to the branch
git push origin feature/your-feature
- Create a new Pull Request.
This project is open-source and licensed under the GPL-3.0 license.



