https://github.com/murilonicemento/sanki
https://github.com/murilonicemento/sanki
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/murilonicemento/sanki
- Owner: murilonicemento
- License: mit
- Created: 2025-01-26T18:26:08.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2025-02-23T16:25:44.000Z (3 months ago)
- Last Synced: 2025-02-23T17:30:59.205Z (3 months ago)
- Language: C#
- Size: 153 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# API Sanki
## Visão Geral
Esta API tem como objetivo gerenciar resumos e flashcards para auxiliar no aprendizado e revisão de conteúdo. Com ela, é possível criar, listar, atualizar e deletar resumos e flashcards, além de possibilitar a revisão baseada em espaçamento (Spaced Repetition). Os flashcards são gerados automaticamente por inteligência artificial com base nos resumos fornecidos pelo usuário, garantindo uma experiência de estudo otimizada e personalizada.
## Tecnologias Utilizadas
- **Linguagem:** C#/.NET
- **Framework:** ASP NET Core
- **Banco de Dados:** PostgreSQL
- **Autenticação:** JWT
- **Padrão Arquitetural:** RESTful
- **Containerização:** Docker Compose## Instalação e Configuração
1. Clone o repositório:
```bash
git clone https://github.com/murilonicemento/sanki.git
```2. Acesse o diretório do projeto:
```bash
cd sanki
```3. Instale as dependências:
```bash
dotnet restore
```4. Configure a string de conexão no `appsettings.json`:
```json
{
"ConnectionStrings": {
"DefaultConnection": "Host=SEU_SERVIDOR;Database=NOME_DO_BANCO;Username=USUARIO;Password=SENHA;"
}
},
"Jwt": {
"Issuer": "http://localhost:5265",
"Audience": "http://localhost:4200",
"EXPIRATION_MINUTES": 1,
"Key": "your secret key"
},
"RefreshToken": {
"EXPIRATION_MINUTES": 60
},
"Gemini": {
"ApiKey": "your api key",
"Url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent"
}
```5. Suba o banco de dados com Docker Compose:
```bash
docker-compose up -d
```6. Execute as migrações para criar o banco de dados:
```bash
dotnet ef database update
```7. Inicie a API:
```bash
dotnet run
```## Endpoints Principais
### Usuário
- `POST /api/user` - Cria um novo usuário.
### Autenticação
- `POST /api/auth/login` - Autentica o usuário e retorna um token JWT.
- `POST /api/auth/GenerateNewToken` - Gera um novo token JWT.### Resumos
- `GET /api/resume` - Lista todos os resumos do usuário autenticado.
- `POST /api/resume` - Cria um novo resumo.
- `PUT /api/resume/{id}` - Atualiza um resumo existente.
- `DELETE /api/resume/{id}` - Remove um resumo.### Flashcards
- `GET /api/flashcard` - Lista todos os flashcards do usuário autenticado.
- `POST /api/flashcard` - Cria flashcards.### Reviews
- `POST /api/review` - Salva nova data de revisão.
## Autenticação e Segurança
A API utiliza JWT (JSON Web Token) para autenticação. Para acessar os endpoints protegidos, é necessário incluir um token válido no cabeçalho da requisição:
```http
Authorization: Bearer SEU_TOKEN_AQUI
```## Contribuição
Para contribuir com o projeto:
1. Faça um fork do repositório.
2. Crie uma branch para sua feature (`git checkout -b minha-feature`).
3. Faça commit das suas alterações (`git commit -m 'Adiciona nova feature'`).
4. Faça push para a branch (`git push origin minha-feature`).
5. Abra um Pull Request.## Licença
Este projeto está licenciado sob a [MIT License](LICENSE).