Este repositório fornece uma configuração base de aplicação Symfony com Docker, Nginx e PostgreSQL para substituir o projeto Aurora utilizado no Ceará.
A configuração já está dockerizada, então você só precisa ter o Docker Compose rodando na sua máquina para que tudo funcione corretamente.
- PHP 8.4
- PostgreSQL 16
- MongoDB 7
- Symfony 7
- Aurora User Interface 5.3
Acesse aqui para entender as decisões
Passo a passo
Primeiro, clone o repositório usando SSH ou HTTPS:
git clone [email protected]:secultce/aurora.git
ou
git clone https://github.com/secultce/aurora.git
Mude para o diretório do projeto:
cd aurora
O jeito mais fácil é rodar o comando
make setup
, isso já vai executar todos os passos necessários e deixar a aplicação rodando em http://localhost:8080
Mas se preferir, pode fazer o passo a passo abaixo
Execute o Docker Compose para iniciar os contêineres:
docker compose up -d
Para instalar as dependências do projeto, entre no contêiner PHP:
docker compose exec -it php bash
Agora é necessário executar alguns passos, nessa ordem, dentro do contêiner:
1 - Instalação das dependências do PHP:
composer install
2 - Gerar os arquivos de Proxies do MongoDB:
php bin/console doctrine:mongodb:generate:proxie
3 - Executar as migrations do banco de dados
php bin/console doctrine:migrations:migrate -n
4 - Executar as fixtures (dados de teste) do banco de dados
php bin/console doctrine:fixtures:load -n
5 - Instalação das dependêncis do frontend:
php bin/console importmap:install
6 - Compilar os arquivos do frontend
php bin/console asset-map:compile
7 - Gerar as chaves de autenticação
php bin/console lexik:jwt:generate-keypair
Depois que tudo estiver configurado e as dependências instaladas, você pode acessar sua aplicação Symfony em http://localhost:8080.
Há também uma rota de teste para a API. Você pode acessá-la em http://localhost:8080/api/example. Esta rota está definida no controller ExampleController
e retorna a mensagem de sucesso.
Há alguns usuarios que você pode utilizar para fins de teste:
senha | |
---|---|
[email protected] | Aurora@2024 |
[email protected] | Aurora@2024 |
[email protected] | Aurora@2024 |
Arquitetura e Decisões técnicas
Estamos utilizando o Symfony e o seu ecossistma de bibliotecas, porém a arquitetura é baseada em camadas e trata-se de um monolítico com a metodologia API First
flowchart TD
HC((HttpClient)) --JsonRequest<--> R[Routes]
B((Browser)) --GET/POST--> Routes
R --> CA[[ControllerApi]]
Routes --> CW[[ControllerWeb]]
CA <--> S[Service]
CW <--> S
S <--> V{Validator}
V <--> RP[Repository]
RP <==ORM/Doctrine==> D[(Database)]
CA --JsonResponse--> HC
CW --HTML/CSS/JS--> B
- Para saber mais sobre nossas decisões técnicas acesse aqui
- Para entender nosso fluxo de desenvolvimento decisões técnicas clique aqui
Informações importantes
A prototipagem das telas é feita por outro time, do RedeMapas, e se encontra neste link do Figma
Há um fork do Bootstrap (framework css) com a implementação dos protótipos acima, se encontra neste repositório
Alguns protótipos implementados não estão seguindo a risca o design sugerido, por decisões totalmente técnicas que estão documentadas aqui