O Cabeleleila Leila é um sistema de agendamento de serviços para um salão de beleza. O sistema permite que os clientes agendem serviços como Corte de Cabelo, Hidratação, Manicure e Pedicure. O projeto foi desenvolvido utilizando Clean Architecture, com um banco de dados relacional MySQL e uma API em .NET 8 que se conecta a uma aplicação MVC.
- email: cabeleleiladsin@outlook.com
- senha: 1234
- C# .NET 8 (API)
- MySQL 8 (Banco de Dados)
- Clean Architecture (Estrutura de Código)
- MVC (Interface) utilizado HTML5, CSS3, JS e Bootstrap
- Cadastro e Login: é possível se cadastrar e realizar login no sistema, além de redefinir a senha caso esqueça, na qual enviamos um email com uma nova senha.
- Listagem de agendamentos: é possível ver a listagem de agendamentos que esse cliente realizou. Através dessa tela o cliente pode saber o status de seu agendamento e ver os demais dados. A listagem possui um filtro que se encaixa a qualquer campo.
- Criação de agendamento: é possível criar um agendamento desde que a data e hora estejam disponíveis. No momento da criação o cliente escolhe o serviço e pode ou não informar uma observação. Caso o cliente já tenha um agendamento na mesma semana, ele sugere a criação do novo agendamento na mesma data.
- Edição de agendamento: é possível editar um agendamento até 2 dias antes da data do mesmo. Caso não cumpra essa condição, a edição fica desabilitada para este agendamento e é necessário que o cliente faça contato via telefone com a Leila.
- Visualizar detalhes do agendamento: é possível ver todos os detalhes de um determinado agendamento.
- Logout: é possível encerrar a sessão no sistema.
- Redefinição de senha: é possível redefinir a senha.
- Login: é possível realizar login no sistema, além de redefinir a senha caso esqueça, na qual enviamos um email com uma nova senha. Os dados de login estão na explicação anterior no início do Readme.
- Visualização dos resultados semanais: é possível ver a quantidade de agendamentos por dia na semana e ver quantos foram confirmados e quantos aguardam confirmação. Tudo isso através de gráficos intuitivos na Home.
- Listagem de agendamentos: é possível ver todos os agendamentos de todas as clientes, com os dados de cada um. A listagem possui um filtro que se encaixa a qualquer campo.
- Atualização de agendamento: é possível atualizar um agendamento.
- Confirmação de agendamento: é possível confirmar um agendamento.
- Visualizar detalhes do agendamento: é possível ver todos os detalhes de um determinado agendamento.
- Logout: é possível encerrar a sessão no sistema.
- Redefinição de senha: é possível redefinir a senha.
-
Crie uma pasta para clonar o projeto.
-
Abra a pasta criada no prompt de comando e execute o comando:
git clone https://github.com/danibassetto/CabeleleilaLeila.git
-
Após a clonagem, navegue para a pasta da API:
cd .\CabeleleilaLeila\CabeleleilaLeila.Api\
-
Edite o arquivo de configuração
appsettings.json
: Execute o comando abaixo para abrir o arquivoappsettings.json
no Notepad:notepad appsettings.json
No arquivo aberto, edite e salve o valor da chave
"ConnectionStrings": { "DataBase" }
para a sua string de conexão com o MySQL instalado. -
Atualize o banco de dados: Execute o comando:
dotnet ef database update
-
Execute a API: Inicie a API com o comando:
dotnet run
Deixe esse prompt aberto e em execução. A API estará disponível na porta 5080.
-
Abra um novo prompt de comando e navegue até a aplicação web:
cd .\CabeleleilaLeila\CabeleleilaLeila.Web\
-
Execute a aplicação web: Inicie o projeto MVC com o comando:
dotnet run
O frontend estará disponível em
http://localhost:5083
.
O projeto segue a abordagem de Clean Architecture com as seguintes camadas principais:
- Domain: Contém as entidades e regras de negócio.
- Application: Contém os casos de uso e lógica de aplicação.
- Infrastructure: Responsável pela comunicação com o banco de dados (MySQL) e outros serviços externos.
- API: Exposição dos serviços via HTTP, construída em .NET 8.
- MVC: Interface visual para interação com o sistema.
Se você deseja contribuir com o projeto, sinta-se à vontade para abrir issues ou enviar pull requests.
Este projeto é licenciado sob a licença MIT.