Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/atillatahak/bookstore-backend

This project focuses on the backend development of a Book Store Management application using NestJS and PostgreSQL. It encompasses three user roles: User, Store Manager, and Admin.
https://github.com/atillatahak/bookstore-backend

Last synced: 19 days ago
JSON representation

This project focuses on the backend development of a Book Store Management application using NestJS and PostgreSQL. It encompasses three user roles: User, Store Manager, and Admin.

Awesome Lists containing this project

README

        

{BookStore}




BookStore

|

Solution

|

Challenge


## Table of Contents

- [Overview](#overview)
- [Built With](#built-with)
- [How to use](#how-to-use)
- [Swagger](#swagger)
- [How To Use with Docker](#how-to-use-with-docker)
- [Contact](#contact)
- [Acknowledgements](#acknowledgements)

## Overview

![screenshot](Screenshot_6.png)
![screenshot](Screenshot_7.png)

This project focuses on the backend development of a Book Store Management application using NestJS and PostgreSQL. It encompasses three user roles: User, Store Manager, and Admin.

User Role:

- Ability to view all bookstores
- Can view books available in each store and search for book availability across stores

Store Manager Role:

- Can add or remove a specific quantity of a book to/from a store (from the Book table)

Admin Role:

- Can create a new bookstore
- Can add a new book
- Can add or remove a specific quantity of a particular book to/from a specific bookstore
- Adding new users and roles can only be done by the Admin

Database:

- The application utilizes PostgreSQL to efficiently store and manage bookstores, books, and inventory levels.

### Built With

- [NodeJs](https://nodejs.org)
- [NestJs](https://nestjs.com)
- [Postgresql](https://www.postgresql.org)
- [Docker](https://www.docker.com)
- [Swagger](https://swagger.io)

## How To Use

To clone and run this application, you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line:

```bash
# Clone this repository
$ git clone https://github.com/AtillaTahak/bookstore-backend

$ cd bookstore-backend

$ cp .env.example .env

$ npm install

$ npm run start:dev
```

You can create seed user with [api](http://localhost:3000/user/seed)

## Swagger

Access the API documentation using Swagger UI:

http://localhost:3000/api

## How To Use with Docker

To clone and run this application, you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. Also you need use for [Docker](https://www.docker.com/#build) From your command line:

```bash
# Clone this repository
$ git clone https://github.com/AtillaTahak/bookstore-backend

$ cd bookstore-backend

$ cp .env.example .env

$ npm install

$ docker compose up --build
```
Access the API documentation using Swagger UI:

http://localhost:3000/api

Access pgAdmin for managing PostgreSQL databases:

http://localhost:5050

## Acknowledgements

- [NestJs](https://nestjs.com)

## Contact

- GitHub: [@AtillaTahak](https://github.com/AtillaTahak)
- Twitter: [@AtillaTahaa](https://twitter.com/AtillaTahaa)
- LinkedIn: [LinkedIn](https://www.linkedin.com/in/atillatahakordugum)
- Blog: [Blog](https://atillataha.blogspot.com)
- Youtube: [YouTube](https://www.youtube.com/channel/UCmoD0x4Z9vdG2PCsI5p8FYg)
- Portfolio: [Portfolio](atillataha.netlify.app)