A modern, modular, and extensible RESTful API inspired by Goodreads, built with ASP.NET Core (.NET 9), Entity Framework Core, MediatR, Follows Clean Architecture.
- Features
- Database Diagram
- Endpoints
- Getting Started
- API Documentation
- Background Jobs
- Health Checks
- Contributing
- User authentication & JWT-based authorization
- Book, author, and review management
- Reading progress tracking
- Yearly reading challenges
- Email Support
- File uploads via Azure Blob Storage
- Background jobs with Hangfire
- Health checks and monitoring
- Swagger/Scalar documentation
- .NET 9 SDK
- SQL Server
- (Optional) SMTP4Dev for local email testing
- (Optional) Azurite for local Azure Blob Storage emulation
-
Clone the repository:
-
Restore packages
dotnet restore
-
Set up configuration:
- Update
src/Goodreads.API/appsettings.Development.jsonwith your local connection strings and secrets as needed.
- Apply database migrations and seed data:
-
By default,
RunMigrationsis set totruein development. The database will be created and seeded automatically on first run. -
Run the migrations (manually).
dotnet ef migrations add InitialCreate dotnet ef database update
- Run the application
dotnet run
- Interactive API docs are available via Swagger at
/swaggerand Scalar at/scalar.
- Hangfire is used for recurring and background jobs.
- Dashboard available at
/hangfire.
- Health check endpoint:
/healthz - Includes checks for database and blob storage connectivity.
Contributions are welcome! Please open issues or submit pull requests for improvements.







