Saturno Notes API é a API desenvolvida para o projeto Saturno Notes. Esta API lida com a autenticação de usuários, gerenciamento de notas e armazenamento de dados usando um banco de dados SQLite. A aplicação foi construída com o objetivo de fornecer uma interface robusta e escalável para o front-end do Saturno Notes.
- Autenticação de Usuário: Realiza o login e registro de usuários utilizando JWT (JSON Web Tokens).
- Gerenciamento de Notas: Permite aos usuários criar, editar, excluir e listar suas notas.
- Organização de Notas: As notas podem ser associadas a categorias e tags.
- Upload de Arquivos: A API suporta o upload de arquivos através do
multerpara armazenar imagens de perfil, por exemplo.
- Node.js: Ambiente de execução para JavaScript no servidor.
- Express: Framework web para construir a API.
- Knex: Query builder para facilitar o acesso ao banco de dados SQLite.
- SQLite3: Banco de dados leve e embutido.
- JWT (JSON Web Tokens): Utilizado para autenticação de usuários.
- Bcryptjs: Para hash de senhas e segurança da aplicação.
- Multer: Middleware para upload de arquivos.
- PM2: Gerenciamento de processos para produção.
Para rodar o projeto localmente, siga os seguintes passos:
-
Clone o repositório:
git clone https://github.com/FrancisBernard34/saturno-notes-api.git
-
Navegue até o diretório do projeto:
cd saturno-notes-api -
Instale as dependências:
npm install
-
Crie um arquivo
.enva partir do arquivo de exemplo.env.example:cp .env.example .env
-
Abra o arquivo
.enve preencha as variáveis com as informações apropriadas:AUTH_SECRET=your_secret_key PORT=3001
-
Crie o banco de dados e realize as migrações:
npm run migrate
-
Execute a aplicação em modo de desenvolvimento:
npm run dev
-
A API estará disponível em http://localhost:3001.
npm run dev: Executa a API em modo de desenvolvimento comnodemon.npm run start: Executa a API em produção compm2.npm run migrate: Executa as migrações para o banco de dados utilizandoknex.npm run test: Executa os testes utilizandojest.
Se você deseja contribuir para o projeto, sinta-se à vontade para abrir uma issue ou enviar um pull request. Seu feedback é muito bem-vindo!
Desenvolvido por Francis Bernard