Welcome to the Diary API project! This project is built using ASP.NET Core and represents the backend and API for a diary application. The goal of this project is to provide a robust and scalable backend service that can handle diary entries and user interactions efficiently.
- User Authentication: Secure JWT Token system.
- Diary Entry Management: Create, read, update, and delete reports, role and users.
- Data Persistence: Store data using Entity Framework Core.
- API Documentation: Swagger UI for API endpoint visualization and interaction.
- ASP.NET Core: For creating the web API.
- Entity Framework Core: For ORM and database interactions.
- Swagger: For API documentation and testing.
- RabbitMq: RabbitMq consumer and prudecer implemented.
- Redis: The requested reports are cached.
- Prometheus and Grafana - All activity is tracked.
To get started with this project, you'll need to have the following prerequisites installed:
- .NET Core SDK
- An IDE like Visual Studio or Rider
- A PostgreSQL Server instance for the database
- Erlang for rabbitMq
- Redis
- Clone the repository to your local machine.
- Open the solution in your IDE.
- Restore the NuGet packages.
- Update the connection string in
secrets.json
ofDiary.Api
to point to your PostgreSQL Server instance. - Set up rabbitMq(follow instructions in
Diary\Diary.Consumer\RabbitMqListener.cs
) - Set up Redis(after installing execute
redis-server
) - Execute
docker-compose up -d
in project directory. - Start the application.
Once the application is running, you can interact with the API using tools like Postman or directly through the Swagger UI.
This project is still a work in progress, and contributions are welcome. If you'd like to contribute, please:
- Fork the repository.
- Create a new branch for your feature.
- Commit your changes.
- Push to your fork.
- Submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to all the contributors who have helped with the development of this project.
For any queries or contributions, please open an issue in the repository.