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.
- Linguagem: C#/.NET
- Framework: ASP NET Core
- Banco de Dados: PostgreSQL
- Autenticação: JWT
- Padrão Arquitetural: RESTful
- Containerização: Docker Compose
-
Clone o repositório:
git clone https://github.com/murilonicemento/sanki.git
-
Acesse o diretório do projeto:
cd sanki
-
Instale as dependências:
dotnet restore
-
Configure a string de conexão no
appsettings.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" }
-
Suba o banco de dados com Docker Compose:
docker-compose up -d
-
Execute as migrações para criar o banco de dados:
dotnet ef database update
-
Inicie a API:
dotnet run
POST /api/user
- Cria um novo usuário.
POST /api/auth/login
- Autentica o usuário e retorna um token JWT.POST /api/auth/GenerateNewToken
- Gera um novo token JWT.
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.
GET /api/flashcard
- Lista todos os flashcards do usuário autenticado.POST /api/flashcard
- Cria flashcards.
POST /api/review
- Salva nova data de revisão.
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:
Authorization: Bearer SEU_TOKEN_AQUI
Para contribuir com o projeto:
- Faça um fork do repositório.
- Crie uma branch para sua feature (
git checkout -b minha-feature
). - Faça commit das suas alterações (
git commit -m 'Adiciona nova feature'
). - Faça push para a branch (
git push origin minha-feature
). - Abra um Pull Request.
Este projeto está licenciado sob a MIT License.