feat: initialize frontend with React, Vite, and Tailwind CSS

- Added package.json for project dependencies and scripts.
- Configured PostCSS with Tailwind CSS.
- Created main application structure with App component and routing.
- Implemented API client for handling requests with Axios.
- Developed authentication API for login, logout, and user verification.
- Created entities API for managing virtual entities.
- Implemented logs API for fetching dispatch logs.
- Added navigation bar component for app navigation.
- Created protected route component for route guarding.
- Set up global CSS with Tailwind directives.
- Configured main entry point for React application.
- Developed basic Dashboard and Login pages.
- Set up router for application navigation.
- Added Jest testing setup for testing library.
- Configured Tailwind CSS with content paths.
- Set TypeScript configuration for frontend.
- Created Vite configuration for development and production builds.
- Added Nginx configuration for serving the application and proxying API requests.
This commit is contained in:
2026-03-26 15:04:12 -03:00
parent fa6731de98
commit ca2e645f02
47 changed files with 7215 additions and 5 deletions

51
nginx/nginx.allinone.conf Normal file
View File

@@ -0,0 +1,51 @@
# Nginx config for the all-in-one image.
# Backend (Spring Boot) runs on localhost:8080 inside the same container.
worker_processes auto;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_types text/plain text/css application/json application/javascript
text/xml application/xml application/xml+rss text/javascript;
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120s;
}
location /swagger-ui/ {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
location /v3/api-docs {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
}
}

51
nginx/nginx.conf Normal file
View File

@@ -0,0 +1,51 @@
worker_processes auto;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_types text/plain text/css application/json application/javascript
text/xml application/xml application/xml+rss text/javascript;
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
# SPA fallback — unknown paths serve index.html so React Router works
location / {
try_files $uri $uri/ /index.html;
}
# Proxy all /api/* requests to the Spring Boot backend
location /api/ {
proxy_pass http://backend:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120s;
}
# Convenience: proxy Swagger UI and OpenAPI spec
location /swagger-ui/ {
proxy_pass http://backend:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
location /v3/api-docs {
proxy_pass http://backend:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
}
}