Simulador de escalonamento de processos com interface web (Next.js) e API (Spring Boot) conectados via websocket. O objetivo é demonstrar e visualizar o comportamento de diferentes algoritmos de escalonamento de processos.
- Repositorio: https://github.com/erikbayerlein/process-scheduling-sim
- Live Demo: https://process-scheduling-simulator.flemis.cloud/
Observação: Caso encontre problemas para se conectar à API no Live Demo, teste a execução local utilizando o Docker Compose.
Pré-requisitos:
- Docker
- Docker Compose
No diretório raiz do projeto, execute:
docker compose up -dApós a inicialização os serviços estarão acessíveis em:
- Frontend (Web): http://localhost:3000
- API (Backend): http://localhost:8080
Para encerrar os serviços:
docker compose downObservação: este README foi simplificado para mostrar apenas como executar o
Se preferir rodar a aplicação localmente sem Docker, siga os passos abaixo.
Pré-requisitos mínimos:
- Java 21 (o projeto da API usa Java 21 conforme
api/pom.xml) - Maven (ou use o wrapper incluído em
./api/mvnw) - Node.js (recomenda-se >= 18) e npm ou pnpm
Recomenda-se abrir dois terminais: um para a API (backend) e outro para o frontend (web).
- Entre na pasta da API:
cd api- Usando o wrapper Maven (Linux/macOS):
./mvnw spring-boot:runOu, se preferir compilar e executar o JAR:
./mvnw clean package -DskipTests
java -jar target/*.jarA API por padrão escuta na porta 8080.
- Abra outro terminal e entre na pasta do frontend:
cd web- Instale dependências (ex.: com pnpm ou npm):
# com pnpm
pnpm install
# ou com npm
npm install- Inicie em modo de desenvolvimento:
# com pnpm
pnpm dev
# ou com npm
npm run devO frontend padrão estará disponível em http://localhost:3000 e, por padrão, conectará à API rodando em http://localhost:8080 (verifique a URL de websocket se necessário nas configurações do frontend).
- Execute backend e frontend em terminais separados para desenvolvimento.
- Se precisar mudar portas ou URLs, verifique as configurações no
application.propertiesda API e no código/config do frontend.