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

https://github.com/samuel-ricardo/tutorialls_api


https://github.com/samuel-ricardo/tutorialls_api

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

          

# Tutorialls API

![363455571-245de160-69be-4ba8-ba59-23ecb592c169](https://github.com/user-attachments/assets/5ab4c18b-cb1e-4acc-9d26-24ff050b796f)

🚀 🟩 Emlpoyee Dashboard 🟩 🚀


Application developed for explore my dev skills

#


|  
Overview   |   
Technologies   |   
Project   |  
Run   |  
Author   |   

#











| :artificial_satellite: About:


This is a full stack tutorial platform that allows you to consume tutorials and search with filters, being able to delete them, edit them or register new tutorials using the best programming practices and clean code, such as Clean Architecture and Hexagonal Architecture.


🔭 | FRONTEND Repository: [[Tutorialls-API](https://github.com/Samuel-Ricardo/Tutorialls_API)]

📡 | Hosted on Render: [[https://tutorialls-api-sha256.onrender.com/](https://tutorialls-api-sha256.onrender.com/)]

🗃️ | PostgreSQL: Hosted on [[Render](https://render.com/)]

🟥 | Redis: Hosted on [[Render](https://render.com/)]

🐇 | RabbitMQ: Hosted on [[CloudAMQP](https://www.cloudamqp.com/)]

📑 | Documentation: [[Swagger](https://tutorialls-api-sha256.onrender.com/api/docs)]


#



:building_construction: | Technologies and Concepts Studied:

>

- NestJS
- RabbitMQ
- Redis
- Cryptography
- JWT
- NodeJS
- ExpressJS
- Typescript
- PostgreSQL
- Jest
- Prisma
- Docker
- Inversify
- Zod
- Validations
- Swagger
- eslint
- Prettier
- husky
- lint-staged
- Clean Architeture
- Scalability

> Among Others...

#



💻 | Application:



📑 | Docs: Swagger

![image](https://github.com/user-attachments/assets/77b9ec7c-00d1-459c-a6b6-da42ecc16031)

- 📑 | Documentation: [[Swagger](https://tutorialls-api-sha256.onrender.com/api/docs)]



💾 | Database: [PostgreSQL]

![361464616-21ce644e-f549-44a0-89a3-973b8a0a0add](https://github.com/user-attachments/assets/ba6819a3-e7ee-4805-916a-4ddc08f896da)


### Overview

A Applicação conta com um sistema de autenticação via JWT e middlewares que fazem a validação dos dados e proteção de rotas específicas, as queries são cacheadas com Redis e todas as mutações na entidade "tutorial" resultam em um evento emitido para o RabbitMQ.

### 📊 | Performance

![image](https://github.com/user-attachments/assets/a85a3f12-b61b-4358-9d94-9bd7f3c04f4a)

![image](https://github.com/user-attachments/assets/a9117d2c-1209-4a39-9299-ea3b836a446f)



👨‍💻 | How to use


### Open your Git Terminal and clone this repository

```git
$ git clone "git@github.com:Samuel-Ricardo/Tutorialls_API.git"
```

### Make Pull

```git
$ git pull "git@github.com:Samuel-Ricardo/Tutorialls_API.git"
```


This application use `Docker` so you dont need to install and cofigurate anything other than docker on your machine.

>


- Navigate to project folder `$ cd ./tutorialls/`


- Create a `.env` file based on .env.*.example files

- Now run it using `docker-compose`

```bash

# After setup docker environment just run this commmand on root project folder:

$ docker-compose up --build # For First Time run this command

$ docker-compose up # to run project

```

```bash

#Apps Running on:

$ API: http://localhost:3000

$ POSTGRESQL: http://localhost:27017 | [DATABASE]
$ PGADMIN: http://localhost:5050/ | [DB DASHBOARD]

$ RABBITMQ: http://localhost:15672/ | [MQ DASHBOARD]
$ REDIS: 6379 | [CACHE]

See more: ./tutorialls/docker-compose.yaml

```


You also can use the Docker Image:

```docker
$ docker pull ghcr.io/samuel-ricardo/tutorialls_api:main
```

```Dockerfile
$ FROM ghcr.io/samuel-ricardo/tutorialls_api:main

```

#



:octocat: | Author:

>

- Samuel Ricardo