Este repositório contém a API do backend para a aplicação OrganizaEquipe, responsável por gerenciar equipes, organizações, escalas de trabalho e a disponibilidade dos membros. A API foi desenvolvida usando Python com o framework Django e Django REST Framework.
A API oferece os seguintes recursos principais, refletindo a estrutura de dados do projeto:
-
Autenticação e Usuários (
User):-
Gerencia o cadastro de novos usuários.
-
Fornece autenticação com tokens JWT (JSON Web Tokens) para acesso seguro.
-
Ao criar um novo usuário, ele é automaticamente adicionado ao grupo 'Users' com permissões padrão.
-
-
Organizações (
Organization):-
Permite operações CRUD (Criar, Ler, Atualizar, Deletar) para organizações.
-
Gerencia a adição e remoção de membros e administradores de uma organização.
-
Filtra organizações por código de acesso ou por membros.
-
-
Equipes (
Team):-
Permite operações CRUD para equipes.
-
Gerencia a adição e remoção de membros e administradores de uma equipe.
-
Oferece uma funcionalidade para listar membros disponíveis em uma data específica, verificando indisponibilidade e participações em outras escalas.
-
Filtra equipes por código de acesso ou por membros.
-
-
Funções (
Role):- Permite operações CRUD para as funções (cargos) dentro de uma equipe.
-
Escalas (
Schedule):-
Criação e gerenciamento de escalas de trabalho com data, hora e equipe associada.
-
Gerenciamento de participações em escalas, incluindo a confirmação de presença de cada usuário.
-
-
Indisponibilidade (
Unavailability):- Os usuários podem registrar períodos de indisponibilidade para que não sejam escalados.
-
Convites (
Invitation) e Solicitações (Request):-
A API gerencia convites para entrar em equipes e organizações.
-
Lida com solicitações de usuários que desejam entrar em uma equipe ou organização por meio de um código de acesso.
-
-
Python 3
-
Django
-
Django REST Framework
-
Django REST Framework SimpleJWT para autenticação e renovação de token.
-
drf-spectacular para geração de documentação da API (compatível com OpenAPI 3).
-
dj-database-url para configuração simplificada do banco de dados.
-
psycopg2-binary para conexão com PostgreSQL.
-
whitenoise para servir arquivos estáticos em produção.
Siga os passos abaixo para configurar e rodar o projeto localmente:
-
Clone o repositório:
git clone https://github.com/martinsglucas/OrganizaEquipe-API.git cd OrganizaEquipe-API -
Crie e ative um ambiente virtual:
python -m venv venv source venv/bin/activate # Para Linux/macOS # venv\Scripts\activate # Para Windows
-
Instale as dependências:
pip install -r requirements.txt
-
Configure o banco de dados: O projeto usa o
db.sqlite3por padrão, mas pode ser configurado para usar PostgreSQL ou outro banco de dados através da variável de ambienteDATABASE_URL. -
Execute as migrações:
python manage.py migrate
-
Crie um superusuário (opcional, mas recomendado):
python manage.py createsuperuser
-
Inicie o servidor de desenvolvimento:
python manage.py runserver
A API estará disponível em http://localhost:8000/.
A documentação da API pode ser acessada em:
-
Swagger UI: http://localhost:8000/api/swagger/