📅 Aplicação completa para gerenciamento de agendamentos de exames médicos, construída com tecnologias modernas para oferecer desempenho e escalabilidade.
- Framework: Next.js
- Estilização: Tailwind CSS
- PostgreSQL: Sistema de banco de dados relacional.
📂 Veja o protótipo do design no Figma.
-
Frontend:
- Criado com Next.js para renderização híbrida (SSR e CSR).
- Estilizado com Tailwind CSS para um design moderno e responsivo.
- Permite aos usuários agendar, visualizar e gerenciar consultas de exames médicos.
-
Backend:
- Criado com NestJS, um framework Node.js modular e extensível.
- Responsável por gerenciar a lógica de negócios e comunicação com o banco de dados.
- Baixar a coleção da api para o hoppscotch
-
Database:
- Banco de dados configurado com PostgreSQL.
- Gerenciado pelo ORM TypeORM no backend.
- Docker instalado.
- Docker Compose configurado.
-
Clone este repositório:
git clone https://github.com/GabrielLuZz/exam-max cd exam-max -
Configure os arquivos
.envna pasta raiz, na front e na back:- Crie um arquivo
.envonde tiver um.env.examplee insira as variáveis de ambiente necessárias. Exemplo:DATABASE_URL=postgres://user:password@database:5432/exams_db JWT_SECRET=super_secret_key
- Crie um arquivo
-
Execute o comando para iniciar os serviços:
docker-compose up --build
-
Acesse os serviços:
- Frontend: http://localhost:3001
- Backend: http://localhost:3000
- Database: Utilize uma ferramenta como PgAdmin ou DBeaver para acessar via
localhost:5432.
.
├── docker-compose.yml # Configurações do Docker Compose
├── front/ # Código do Frontend em Next.js
├── back/ # Código do Backend em Nest.js
└── .env.example # Modelo do arquivo de variáveis de ambiente
As principais variáveis que devem ser configuradas no arquivo .env incluem:
-
Raiz da aplicação:
APP_ENV: Ambiente da aplicação (valores possíveis:development | production).POSTGRES_USER: Usuário do banco de dados.POSTGRES_PASSWORD: Senha do usuário do banco de dados.POSTGRES_DB: Nome do banco de dados.
-
Backend:
DB_HOST: host do banco de dados (rodado localmente é o nome do serviço docker, padrão:database).DB_PORT: porta em que o banco de dados está rodando. (por padrão5432)DB_DATABASE: Nome do banco de dados configurado na variávelPOSTGRES_DB.DB_USERNAME: Nome do usuário configurado na variávelPOSTGRES_USER.DB_PASSWORD: Senha do usuário configurado na variávelPOSTGRES_PASSWORD.CLIENTS_URLS: Urls permitidas de acessar a aplicação em produção (ex.:http://front:3001,http://localhost:3001).
-
Frontend:
- Não possui variáveis de ambiente
-
Subir os containers:
docker-compose up
-
Derrubar os containers:
docker-compose down
-
Remover volumes e containers para um reset completo:
docker-compose down --volumes
-
Reconstruir a aplicação:
docker-compose up --build
-
Reconstruir a aplicação sem cache:
docker-compose build --no-cache
-
Inspecionar logs:
docker-compose logs -f
- Remover containers parados:
docker system prune
- Limpar volumes não utilizados:
docker volume prune
✅ Agendamento de exames médicos com horários e datas pre estabelecido por uma entidade administradora.
✅ listagem de exames e agendamentos.
✅ Deleção de agendamentos.
✅ Integração com banco de dados para armazenar e consultar informações.
Contribuições são muito bem-vindas!
- Faça um fork do repositório.
- Crie uma branch para sua feature ou correção:
git checkout -b minha-nova-feature
- Envie suas alterações:
git commit -m "Minha nova feature" git push origin minha-nova-feature
Feito com ❤️ por Gabriel Luz 🚀
