Giter VIP home page Giter VIP logo

booky's Introduction

wakatime

Booky ๐Ÿ“š

Booky is an opinionated open source project to showcase microservices best practices from my (Djoufson) personal experience and preferences.

Project overview

The project is a booking system, that basically enables users to buy and download books through a mobile application or the website. Additionally, authors can subscribe to a plan and upload their books on the platform.

Features

The below list describes a brief overview of what the system should be capable of, and the current status of each feature

Feature Details Status
Authentication Authenticate th users with various providers โœ… Done
Visit the books catalog Filter through the list of available books โœ…๏ธ Done
Add / Remove books to the cart Through the Basket Service, authenticated users will be able to add books to the cart or remove others from it ใ€ฝ๏ธ In progress
Purchase and download a book Initiate a an order request, and purchase the selected book. After the purchase, the user will be able to download the book โ›”๏ธ Not started
Upgrade plan to become a author The author role gives permission to upload books and earn money on the platform by selling those books โ›”๏ธ Not started
Make CRUD operations on a book Each author is able at any time to upload, delete or update a book on the platform, following some rules and restrictions โ›”๏ธ Not started

Micro-services

The below list describes what are the microservices involved in our system and their responsibilities

Service Responsibility
Catalog Service This service is sort of the books repository.
Identity Service Responsible for users management, authentication and access control
Basket Service Responsible for storing the state of customers cart
Order Service Responsible for processing order requests from users, as well as making payments using a third party service

Getting started

Do you want to try this on your own? Here are the steps to follow to do so.

Prerequisites

  • Clone the booky repository: https://github.com/Djoufson/booky

  • (Windows only) Install Visual Studio. Visual Studio contains tooling support for .NET Aspire that you will want to have. Visual Studio 2022 version 17.9 Preview.

    During installation, ensure that the following are selected:

    • ASP.NET and web development workload.
    • .NET Aspire SDK component in Individual components.
  • Install the latest .NET 8 SDK

  • On Mac/Linux (or if not using Visual Studio), install the Aspire workload with the following commands:

    dotnet workload update
    dotnet workload install aspire
    dotnet restore booky.Web.slnf
  • Install & start Docker Desktop: https://docs.docker.com/engine/install/

Running the solution

โš ๏ธ Remember to ensure that Docker is running

  • (Windows only) Run the application from Visual Studio:

    • Open the booky.Web.slnf file in Visual Studio
    • Ensure that booky.AppHost.csproj is your startup project
    • Hit Ctrl-F5 to launch Aspire
  • Or run the application from your terminal:

    dotnet run --project src/Aspire/Aspire.AppHost/Aspire.AppHost.csproj

    then look for lines like this in the console output in order to find the URL to open the Aspire dashboard:

    Now listening on: http://localhost:15040

Credits

This project is highly inspired by the following ones:

booky's People

Contributors

djoufson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

booky's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.