Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/eliasgcf/pontoloc-api

🛠 Rest api for pontoloc application - made with express framework - using docker, postgreSQL and typeORM
https://github.com/eliasgcf/pontoloc-api

backend docker docker-compose express nodejs postgresql

Last synced: 12 days ago
JSON representation

🛠 Rest api for pontoloc application - made with express framework - using docker, postgreSQL and typeORM

Awesome Lists containing this project

README

        


Logo


Express Application for a PontoLoc Web App


GitHub top language


Made by

Repository size


GitHub last commit


Repository issues

GitHub


About the project   |   
Technologies   |   
Getting started   |   
How to contribute   |   
License



Run in Insomnia

## 👨🏻‍💻 About the project

PontoLoc is a micro enterprise that rents construction materials. Thinking about helping them, I developed this API so the company can have a simple and easy way to control and visualize the rent of its materials.

The company can create lists and contracts of clients, lists of materials with their respective quantities, delivery and collection fee and calculate the final price when the rental period is end.

To see the **web client**, click here: [PontoLoc Web](https://github.com/EliasGcf/pontoloc-web)

## 🚀 Technologies

Technologies that I used to develop this api

- [Node.js](https://nodejs.org/en/)
- [TypeScript](https://www.typescriptlang.org/)
- [Express](https://expressjs.com/pt-br/)
- [TypeORM](https://typeorm.io/#/)
- [JWT-token](https://jwt.io/)
- [Celebrate](https://github.com/arb/celebrate)
- [PostgreSQL](https://www.postgresql.org/)
- [Date-fns](https://date-fns.org/)
- [Jest](https://jestjs.io/)
- [SuperTest](https://github.com/visionmedia/supertest)
- [Husky](https://github.com/typicode/husky)
- [Commitlint](https://github.com/conventional-changelog/commitlint)
- [Commitizen](https://github.com/commitizen/cz-cli)
- [Eslint](https://eslint.org/)
- [Prettier](https://prettier.io/)
- [EditorConfig](https://editorconfig.org/)

## 💻 Getting started

Import the `Insomnia.json` on Insomnia App or click on [Run in Insomnia](#insomniaButton) button

### Requirements

- [Docker](https://www.docker.com/)
- [Docker Compose](https://docs.docker.com/compose/)

**Clone the project and access the folder**

```bash
$ git clone https://github.com/EliasGcf/pontoloc-api.git && cd pontoloc-api
```

**Follow the steps below**

```bash
# Install the dependencies
$ yarn

# Make a copy of '.env.example' to '.env'
# and set with YOUR environment variables
$ cp .env.example .env

# Run the services
$ docker-compose up -d

# Once the services are running, run the migrations
$ yarn typeorm migration:run

# For make requests you must use JWT Token
# So, run the seeds to create admin user
$ yarn seed:run

# Credentials:
# email: [email protected]
# password: 123456

# Well done, project is started!
```

## 🤔 How to contribute

- **Make a fork of this repository**

```bash
# Fork using GitHub official command line
# If you don't have the GitHub CLI, use the web site to do that.

$ gh repo fork EliasGcf/pontoloc-api
```

```bash
# Clone your fork
$ git clone your-fork-url && cd pontoloc-api

# Create a branch with your feature
$ git checkout -b my-feature

# Make the commit with your changes
$ git commit -m 'feat: My new feature'

# Send the code to your remote branch
$ git push origin my-feature
```

After your pull request is merged, you can delete your branch

## 📝 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

Made with 💜 by Elias Gabriel 👋 [See my linkedin](https://www.linkedin.com/in/eliasgcf/)