LeandroRochAlg/wrighte-api
[PT] Back-end da aplicação web WrightE, conectando escritores amadores a editores e leitores apaixonados.
WrightE API
[PT] Back-end da aplicação web WrightE, conectando escritores amadores a editores e leitores apaixonados.
Índice
- Descrição
- Funcionalidades
- Tecnologias Utilizadas
- Instalação
- Como Usar
- Rotas Principais
- Contribuição
- Licença
Descrição
WrightE é uma plataforma que visa conectar escritores amadores com editores e leitores apaixonados. Esta API serve como o back-end da aplicação, fornecendo todos os serviços e funcionalidades necessários para suportar a plataforma.
A API gerencia o cadastro e autenticação de usuários, publicação de textos, controle de versões, feedback detalhado, e gamificação para estimular a interação entre escritores e editores.
Funcionalidades
-
Autenticação e Autorização
- Login e registro de usuários (JWT com autenticação baseada em tokens).
- Diferenciação de papéis: escritores, editores e administradores.
-
Gerenciamento de Usuários
- Atualização de informações do usuário (e-mail, username, senha).
- Desativação de contas (soft delete).
-
Publicação de Conteúdo
- Controle de versões dos textos.
- Definição de níveis mínimos de editores para comentar.
-
Feedback e Gamificação
- Comentários em trechos específicos dos textos.
- Atribuição de pontos para escritores e níveis de experiência para editores.
-
Administração
- Controle de usuários e acompanhamento da interação entre os mesmos.
Tecnologias Utilizadas
- Linguagem: TypeScript
- Framework: Node.js com Express.js
- Banco de Dados:
- MongoDB: Armazena textos, versões e comentários.
- PostgreSQL: Gerencia usuários, gamificação e relacionamentos.
- Autenticação: JWT (JSON Web Token)
- Middleware:
- CORS para habilitar acessos entre origens.
- Validação de níveis mínimos de editor.
Instalação
Siga os passos abaixo para configurar a API localmente:
-
Clone o repositório:
git clone https://github.com/LeandroRochAlg/wrighte-api.git
-
Navegue para o diretório do projeto:
cd wrighte-api -
Instale as dependências:
npm install
-
Configure o arquivo
.envcom as variáveis de ambiente necessárias:PORT=3000 CORS_ORIGIN=http://localhost:5173 DB_HOST=<seu-pgdb-host> DB_PORT=<seu-pgdb-port> DB_NAME=<seu-pgdb-name> DB_USER=<seu-pgdb-user> DB_PASSWORD=<seu-pgdb-password> JWT_SECRET=<seu-secret> MONGODB_URI=<seu-mongo-uri> MONGODB_DB_NAME=<seu-mongo-name>
-
Inicie o servidor:
npm run dev
A API estará disponível em http://localhost:3000.
Rotas Principais
Usuários
- POST
/users/register: Registro de novos usuários. - POST
/users/login: Login de usuários. - PUT
/users/update-profile: Atualização de e-mail ou username. - PUT
/users/update-password: Atualização de senha. - DELETE
/users/deactivate-account: Desativação de conta.
Textos
- POST
/texts/book-content: Criação de texto. - GET
/texts/all-contents: Lista todos os textos (filtrados por nível mínimo de editor). - GET
/texts/user-contents: Lista textos do usuário logado.
Comentários
- POST
/comments: Salva um comentário em um trecho de texto. - GET
/comments/:contentID/:versionID: Recupera comentários de uma versão específica.
Como Usar
- Inicie a API como descrito em Instalação.
- Teste as rotas com uma ferramenta como Postman ou Insomnia.
- Configure o front-end para consumir a API no endereço correto.
Contribuição
Contribuições são bem-vindas! Siga os passos abaixo para colaborar com o projeto:
- Faça um fork do repositório.
- Crie uma branch para a sua contribuição:
git checkout -b feature/sua-contribuicao
- Faça suas alterações e commit:
git commit -m 'Descrição da sua contribuição' - Envie para o seu repositório remoto:
git push origin feature/sua-contribuicao
- Abra um Pull Request no repositório original.
Licença
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para mais informações.
Este README apresenta uma visão completa da API, destacando as funcionalidades, tecnologias utilizadas, como instalá-la, principais rotas, e como contribuir para o projeto.