You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sistema completo de agendamento para barbearia, desenvolvido como projeto fullstack de aprendizado. O projeto cobre desde a interface do usuário até a API backend com autenticação, gerenciamento de serviços e controle de agendamentos.
📸 Preview
🧱 Visão Geral do Projeto
Este projeto é dividido em duas partes:
Frontend — interface web desenvolvida com HTML, CSS e JavaScript, com páginas para login, cadastro, listagem de serviços e agendamento
Backend — API RESTful construída com Python e Django REST Framework, responsável por autenticação JWT, gerenciamento de serviços e controle de agendamentos por usuário
Listagem com nome, preço e duração de cada serviço
Agendamento
Seleção de serviço, data e horário disponível
Meus Agendamentos
Visualização e cancelamento dos agendamentos do usuário
Admin(futuro)
Gerenciar serviços e visualizar todos os agendamentos
🔌 Endpoints da API
🔐 Autenticação (dj-rest-auth)
Método
Rota
Descrição
POST
/auth/registration/
Cadastro de novo usuário
POST
/auth/login/
Login e geração do token JWT
POST
/auth/logout/
Logout
GET
/auth/user/
Dados do usuário autenticado
✂️ Serviços
Método
Rota
Descrição
GET
/services/
Listar todos os serviços
GET
/services/{id}/
Detalhe de um serviço
POST
/services/
Criar serviço (admin)
PUT
/services/{id}/
Atualizar serviço (admin)
DELETE
/services/{id}/
Remover serviço (admin)
📅 Agendamentos
Método
Rota
Descrição
GET
/appointments/
Listar agendamentos do usuário logado
POST
/appointments/
Criar novo agendamento
GET
/appointments/{id}/
Detalhe de um agendamento
DELETE
/appointments/{id}/
Cancelar agendamento
🔗 Conexão Tela ↔ Endpoint
Tela
Endpoint
Login
POST /auth/login/
Cadastro
POST /auth/register/
Home / Serviços
GET /services/
Agendamento
POST /appointments/
Meus Agendamentos
GET /appointments/
Cancelar
DELETE /appointments/{id}/
🔄 Fluxo da Aplicação
Usuário abre o site
↓
Faz login (ou cadastro)
↓
Vê os serviços disponíveis
↓
Escolhe serviço, data e horário
↓
Confirma o agendamento
↓
Visualiza ou cancela nos "Meus Agendamentos"
⚠️ Regras de Negócio
Cada usuário só pode visualizar e cancelar os próprios agendamentos
Horários já ocupados não devem aparecer como disponíveis
Apenas usuários com perfil admin podem criar, editar ou remover serviços
⚙️ Como Executar Localmente
Frontend
# Clone o repositório
git clone https://github.com/eduardonunesfvm/barber-fullstack.git
cd barber-fullstack
# Abra o index.html diretamente no navegador# ou use uma extensão como Live Server no VS Code
Backend
# Clone o repositório (quando disponível)
git clone https://github.com/eduardonunesfvm/barber-fullstack.git
cd barber-fullstack
# Crie e ative o ambiente virtual
python -m venv .venv
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows# Instale as dependências
pip install -r requirements.txt
# Configure as variáveis de ambiente
cp .env.example .env
# edite o .env com suas credenciais# Execute as migrations
python manage.py migrate
# Crie um superusuário (admin)
python manage.py createsuperuser
# Inicie o servidor
python manage.py runserver