Giter Club home page Giter Club logo

rpg-books-api's Introduction

RPG Books API

This is the API standing behind the RPG Books application.

What is RPG Books?

This is a new and fun application for reading and in the same time playing role playing games. The idea is to make reading books interesting again. Here the reader will became the main character in the book and will be able to make decisions that will affect the story.

What is the purpose of this project?

This is a research project that I develop using the latest version of .NET 8. I have tried to follow the best practices for a modern and secure dot net application.

Goals to achieve in this project

  • Use .NET 8 and 8th version of Microsoft libraries
  • Clean architecture
  • Domain driven design
  • Command and query responsibility segregation
  • Using performance oriented libraries
  • Custom mediator implementation
  • Custom domain events implementation
  • Custom authentication and authorization implementation
  • Create modulated monolith application
  • Each module should be easily extracted to another API with few lines of code for configuration
  • Separate each domain context to be in a different stand-alone module
  • Do not depend on single DB technology. Persistence layer should be able to use any of MSSQL, MySQL, PostgreSQL, SQLite
  • Support multiple languages
  • Take into account users security and privacy.

Modules

Identity module

The Identity module is a crucial component of the RPG Books application, responsible for managing user authentication, authorization, and user profile information. It provides a secure and seamless experience for users, ensuring their data is protected and accessible only to authorized individuals.

Catalogue module

The Catalogue module serves as a central repository for all available books in the application. It provides users with a comprehensive listing of books, including details such as title, author, genre, and description. Users can browse, search, and explore the vast collection of books offered. Each book can be purchased and added to the user's library.

Orders module

The Orders module enables users to place orders for books they wish to purchase, see their order history, payments and download invoices.

Read module

The Read module enables users to read the books they have purchased. It provides a seamless reading experience, allowing users to read books on any device, anywhere, anytime.

Books module

This module serves as a central repository for all available books in the application. Here the authors create and release their books into the Catalogue.

Statistics module

Here the authors can see the statistics for their books. Also the readers can see statistics for their reading activity.

rpg-books-api's People

Contributors

slavisharp avatar slavisharper avatar

Stargazers

 avatar

Watchers

 avatar

rpg-books-api's Issues

Support authentication token refresh

  • Auth JWT should be valid for only a few minutes.
  • Refresh token should be provided on each login action.
  • In order to refresh the JWT both authentication and refresh token must be provided.
  • Refresh tokens must also be regenerated with the authentication token.
  • Also session id claim must be preserved when refreshing the JWT
  • In order to maintain multiple sessions at once we need to keep a list of refresh tokens in the database each with unique session id.
  • Refresh tokens values should be stored in encrypted state in the database.

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.