https://github.com/pedro-git-projects/carteirinha-digital-api
https://github.com/pedro-git-projects/carteirinha-digital-api
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/pedro-git-projects/carteirinha-digital-api
- Owner: pedro-git-projects
- Created: 2023-12-25T14:31:21.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-01-08T18:13:09.000Z (about 2 years ago)
- Last Synced: 2024-01-09T19:46:28.592Z (about 2 years ago)
- Language: Go
- Size: 43 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Carteirinha Digital - API
Este repositório contém a implementação da API em Golang para um aplicativo de controle de entrada de alunos, conhecido como "Carteirinha Digital". O aplicativo utiliza o framework Gin para a construção da API e a biblioteca go-qrcode para a geração de códigos QR. Além disso, o banco de dados utilizado é o PostgreSQL, gerenciado em um container Docker, e as migrações são realizadas através de arquivos .sql utilizando a ferramenta Golang Migrate.
## Configuração do Ambiente
### Requisitos
Certifique-se de ter os seguintes requisitos instalados em sua máquina:
- Golang
- Docker
- Docker Compose
- GNU Make
### Configuração do Banco de Dados
O banco de dados PostgreSQL pode ser iniciado em um container Docker utilizando o seguinte comando:
```bash
docker-compose up -d
```
Isso iniciará o PostgreSQL em um container configurado conforme as especificações do arquivo `docker-compose.yml`.
### Migrações
As migrações do banco de dados são gerenciadas através da ferramenta Golang Migrate. Certifique-se de ter a ferramenta instalada em sua máquina. As migrações estão localizadas no diretório `migrations/`. Para executar as migrações, utilize o seguinte comando:
```bash
migrate -path migrations/ -database "postgres://username:password@localhost:5432/database_name?sslmode=disable" up
```
Substitua `username`, `password`, e `database_name` com as credenciais apropriadas.
## Endpoints da API
### Autenticação
A autenticação é necessária para acessar os seguintes endpoints. O token de acesso deve ser enviado no cabeçalho da requisição.
- **GET /auth/qr-code**: Gera um código QR para autenticação.
- **POST /auth/record-attendance**: Registra a entrada de um aluno na escola.
#### Autenticação de Usuários
- **POST /auth/students/signin**: Autenticação de estudantes.
- **POST /auth/parents/signin**: Autenticação de responsáveis.
- **POST /auth/staff/signin**: Autenticação de funcionários.
### Cadastro de Usuários
- **POST /parent-student**: Criação de vínculo entre responsável e estudante.
- **POST /students**: Cadastro de estudantes.
- **POST /parents**: Cadastro de responsáveis.
- **POST /staff**: Cadastro de funcionários.
### Saúde da API
- **GET /**: Verifica a saúde da API.
## Como Executar
1. Clone o repositório:
```bash
git clone https://github.com/seu-usuario/carteirinha-digital-api.git
cd carteirinha-digital-api
```
2. Configure o ambiente e inicie o banco de dados:
```bash
docker-compose up -d
```
3. Execute as migrações:
```bash
make migrate-up
```
4. Inicie a API:
```bash
make run
```
A API estará disponível em `http://localhost:8080`.
Esteja ciente de fornecer as credenciais corretas para o banco de dados e ajustar conforme necessário antes de iniciar a aplicação.