🛠️ Tecnologias Utilizadas Backend: Python 3.11, Django 4.x, Django REST Framework
Servidor de Aplicação: Gunicorn
Servidor Web / Proxy: Nginx
Banco de Dados: MySQL 8.0
Filas / Cache: Redis 7, Celery
Autenticação: djangorestframework-simplejwt
Documentação: drf-spectacular
Admin: django-jazzmin
Containerização: Docker, Docker Compose
Pré-requisitos: Python
Django
IDE
Git
Docker
Guia de instalação, via terminal VScode:
1- Este comando irá construir as imagens e iniciar todos os serviços (Nginx, Gunicorn/Django, MySQL, Redis, Celery) em segundo plano. docker-compose up -d --build
2- Após os contêineres estarem em execução, precisamos de preparar o banco de dados e os ficheiros estáticos.
a) Aplicar as migrações do banco de dados.
docker-compose exec backend python manage.py migrate
3- Coletar os ficheiros estáticos (Obrigatório para o Nginx): Este comando copia os CSS/JS do admin e do Jazzmin para um volume partilhado que o Nginx pode servir.
docker-compose exec backend python manage.py collectstatic --noinput --clear
4- Criar um Superusuário (Administrador): Siga as instruções para criar o seu utilizador de admin. docker-compose exec backend python manage.py createsuperuser
5- Documentação da API (Swagger) Essa etapa é para acessar a documentação e testar todos os endpoints da API.
Swagger UI: http://localhost/api/schema/swagger-ui/
🚀 Utilização Após a instalação, o projeto estará acessível no navegador:
Painel de Administração (Jazzmin) Aceda ao painel para gerir todas as entidades do sistema.
Utilizador: (O superusuário criado)
Senha: (A senha que você definiu)
Documentação da API (Swagger) Aceda à documentação interativa para ver e testar todos os endpoints da API.
Swagger UI: http://localhost/api/schema/swagger-ui/
Redoc: http://localhost/api/schema/redoc/
Principais Endpoints da API Login: POST /api/login/
Obras: GET, POST /api/obras/
Detalhe Obra: GET, PUT, PATCH, DELETE /api/obras/{id}/
Duplicar Obra: POST /api/obras/{id}/duplicar/
Ambientes: GET, POST /api/ambientes/
... e assim por diante para torres, itens, materiais, marcas e descricoes.