A Ideia Space é uma startup brasileira de educação que tem como objetivo melhorar a qualidade do ensino, especialmente nas áreas de STEAM (Ciência, Tecnologia, Engenharia, Artes e Matemática). Sua proposta é utilizar o fascínio pelo espaço como tema central para envolver e capacitar os alunos em projetos que estimulam a criatividade e a resolução de problemas.
Portanto, para este projeto, a Ideia Space é o cliente que necessita de uma solução de software capaz de criar uma experiência de aprendizado gamificada, associado à obtenção de métricas de desempenho dos alunos, para que possa avaliar a eficácia de seus métodos de ensino, associado ao engajamento dos alunos.
O objetivo da plataforma é acompanhar o aprendizado do aluno para além das atividades presenciais, proporcionando um ambiente digital que permita o estudo contínuo do aluno e garanta a padronização de avaliações da Ideia Space.
- Docker: Ferramenta de conteinerização que permite isolar os serviços da aplicação, garantindo portabilidade e consistência entre os ambientes de desenvolvimento e produção.
- PostgreSQL: Sistema avançado de gerenciamento de banco de dados relacional, conhecido por sua robustez e extensibilidade.
- FastAPI: Framework backend em Python projetado para desenvolver APIs modernas, seguras e escaláveis. Facilita o gerenciamento de dados dos alunos, autenticação e outras funcionalidades da plataforma.
- SQLAlchemy: Biblioteca de mapeamento objeto-relacional (ORM) que assegura uma conexão eficiente e segura com o banco de dados, simplificando operações com dados.
- Next.js: Framework frontend baseado em React que oferece renderização híbrida (estática e server-side), proporcionando alta performance e ótima experiência de desenvolvimento.
Antes de começar, certifique-se de que os seguintes pré-requisitos estão atendidos:
- Docker: Ferramenta de conteinerização que permite isolar os serviços da aplicação.
- Docker Compose: Ferramenta para definir e gerenciar aplicações multi-contêiner.
- Make: Utilitário para automatizar tarefas de construção e gerenciamento de projetos.
-
Clone o repositório do projeto:
git clone https://github.com/mdsreq-fga-unb/2024.2-T01-IdeaSpace cd 2024.2-T01-IdeaSpace
-
Configure as variáveis de ambiente do projeto:
Para o backend, copie o template presente em backend/.env.example para backend/.env.
cp backend/.env.example backend/.env
Agora, configure as variáveis de ambiente no caminho mencionado com as credenciais do banco de dados (que será criado automaticamente depois), primeiro usuário administrador e a chave secreta de criptografia de senhas. Para uso no ambiente de desenvolvimento, pode ser suficiente apenas a cópia do template. Em produção, alterações devem ser feitas para garantir a segurança do sistema.
Para o frontend, copie o template presente em frontend/.env.example.
cp frontend/.env.example frontend/.env
- Suba os serviços utilizando o Docker Compose
# Comando Make
make start
# Comando equivalente
docker compose -f docker/compose.yml up
- O sistema de backend estará disponível na porta 8000 do localhost.
- O sistema backend estará disponível na porta 3000 do localhost
Para evitar erros no build da aplicação, verifique se as portas do frontend, backend e banco de dados (por padrão 5432) estão disponíveis.