https://github.com/mae776569/fatura-task
Fatura is a small application that represents products and their providers.
https://github.com/mae776569/fatura-task
api database expressjs mysql nodejs sql
Last synced: 3 months ago
JSON representation
Fatura is a small application that represents products and their providers.
- Host: GitHub
- URL: https://github.com/mae776569/fatura-task
- Owner: MAE776569
- Created: 2021-04-07T14:20:15.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-04-08T12:33:44.000Z (about 5 years ago)
- Last Synced: 2026-01-03T16:19:44.541Z (6 months ago)
- Topics: api, database, expressjs, mysql, nodejs, sql
- Language: JavaScript
- Homepage:
- Size: 25.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fatura
Fatura is a small application that represents products and their providers.
## How to start
1. Set environment variables to properly connect the database and start the server by creating a `.env` file and adding the variables. A sample of the env variables can be found in `.env.example`.
2. install all project dependencies with `npm install`
3. start the development server with `npm start`
## Structure
SQL (DDL Script) that describes the database schema can be found in [`/sql`](sql) folder.
Middlewares can be found in [`/middlewares`](middlewares) folder.
Routes can be found in [`/routes`](routes) folder.
## API
| Method | Endpoint | Query string | Description |
| ------ | ------------------------------- | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| GET | `/products` | **page**, **limit**, optional **category** to filter by category id | paginate products and filter products by category if category id is provided as query string |
| PUT | `/products/:id/toggle-featured` | | toggle product as featured inside its category |
## Database
- MySQL is used to connect the application, so make sure you have a MySQL driver that is running.
- For consistency, a SQL query is used for querying the database as it was required to write DDL script.
## Middlewares
- Pagination middleware is used to append a pagination object to req so that it becomes available for the endpoints using the middleware.