Skip to content

Esta API tem como objetivo gerenciar resumos e flashcards para auxiliar no aprendizado e revisão de conteúdo. 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.

License

Notifications You must be signed in to change notification settings

murilonicemento/sanki

Repository files navigation

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:

    git clone https://github.com/murilonicemento/sanki.git
  2. Acesse o diretório do projeto:

    cd sanki
  3. Instale as dependências:

    dotnet restore
  4. 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"
    }
  5. Suba o banco de dados com Docker Compose:

    docker-compose up -d
  6. Execute as migrações para criar o banco de dados:

    dotnet ef database update
  7. Inicie a API:

    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:

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.

About

Esta API tem como objetivo gerenciar resumos e flashcards para auxiliar no aprendizado e revisão de conteúdo. 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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages