Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

GabrielLuZz/exam-max

Repository files navigation

🏥 Exam Max - Aplicação de Agendamento de Exames

Docker Compose Next.js NestJS Tailwind CSS TypeORM Shadcn UI PostgreSQL

📅 Aplicação completa para gerenciamento de agendamentos de exames médicos, construída com tecnologias modernas para oferecer desempenho e escalabilidade.


🚀 Tecnologias Utilizadas

🖥️ Frontend

⚙️ Backend

  • Framework: Nest.js
  • Banco de Dados: TypeORM com suporte a múltiplos bancos de dados.

🛢️ Database

  • PostgreSQL: Sistema de banco de dados relacional.

🖌️ Design no Figma

📂 Veja o protótipo do design no Figma.


📦 Serviços

  1. 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.
  2. Backend:

  3. Database:

    • Banco de dados configurado com PostgreSQL.
    • Gerenciado pelo ORM TypeORM no backend.

🛠️ Como Rodar a Aplicação com Docker

🔧 Pré-requisitos

🌀 Subindo os Serviços

  1. Clone este repositório:

    git clone https://github.com/GabrielLuZz/exam-max
    cd exam-max
  2. Configure os arquivos .env na pasta raiz, na front e na back:

    • Crie um arquivo .env onde tiver um .env.example e insira as variáveis de ambiente necessárias. Exemplo:
      DATABASE_URL=postgres://user:password@database:5432/exams_db
      JWT_SECRET=super_secret_key
  3. Execute o comando para iniciar os serviços:

    docker-compose up --build
  4. Acesse os serviços:


🗂️ Estrutura do Projeto

.
├── 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

📝 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ão 5432)
    • DB_DATABASE: Nome do banco de dados configurado na variável POSTGRES_DB.
    • DB_USERNAME: Nome do usuário configurado na variável POSTGRES_USER.
    • DB_PASSWORD: Senha do usuário configurado na variável POSTGRES_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

📝 Comandos Úteis

🐳 Comandos Docker

  • 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

🧹 Limpar Docker

  • Remover containers parados:
    docker system prune
  • Limpar volumes não utilizados:
    docker volume prune

🌟 Funcionalidades

✅ 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

Contribuições são muito bem-vindas!

  1. Faça um fork do repositório.
  2. Crie uma branch para sua feature ou correção:
    git checkout -b minha-nova-feature
  3. Envie suas alterações:
    git commit -m "Minha nova feature"
    git push origin minha-nova-feature

Feito com ❤️ por Gabriel Luz 🚀

About

Exam Max is a full-stack medical exam scheduling platform built with Next.js, NestJS, PostgreSQL, and Docker Compose. It allows users to book, view, and manage exam appointments through a modern, responsive interface, while the backend ensures secure data handling and scalable API architecture.

Topics

Resources

Stars

Watchers

Forks

Contributors

AltStyle によって変換されたページ (->オリジナル) /