Skip to content

Goodreads-inspired web API built with .NET 9 and C# 13, showcasing clean architecture and scalable backend design.

Notifications You must be signed in to change notification settings

yahya-saad/goodreads-clone

Repository files navigation

Goodreads Clone

A modern, modular, and extensible RESTful API inspired by Goodreads, built with ASP.NET Core (.NET 9), Entity Framework Core, MediatR, Follows Clean Architecture.

dotnet dotnet sql-server jwt Swagger Swagger

Table of Contents


Features

  • 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

Database Diagram

Database Diagram

Endpoints

01 02 03 04 05 06 07


Getting Started

Prerequisites

Configuration

  1. Clone the repository:

  2. Restore packages

    dotnet restore
  3. Set up configuration:

  • Update src/Goodreads.API/appsettings.Development.json with your local connection strings and secrets as needed.
  1. Apply database migrations and seed data:
  • By default, RunMigrations is set to true in 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
  1. Run the application
    dotnet run

API Documentation

  • Interactive API docs are available via Swagger at /swagger and Scalar at /scalar.

Background Jobs

  • Hangfire is used for recurring and background jobs.
  • Dashboard available at /hangfire.

Health Checks

  • Health check endpoint: /healthz
  • Includes checks for database and blob storage connectivity.

Contributing

Contributions are welcome! Please open issues or submit pull requests for improvements.

linkedin

About

Goodreads-inspired web API built with .NET 9 and C# 13, showcasing clean architecture and scalable backend design.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages