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

View File

@@ -0,0 +1,13 @@
package com.condado.newsletter
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.scheduling.annotation.EnableScheduling
@SpringBootApplication
@EnableScheduling
class CondadoApplication
fun main(args: Array<String>) {
runApplication<CondadoApplication>(*args)
}

View File

@@ -0,0 +1,42 @@
spring:
datasource:
url: jdbc:h2:mem:condado;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create-drop
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.H2Dialect
mail:
host: localhost
port: 1025
username: test
password: test
properties:
mail:
smtp:
auth: false
starttls:
enable: false
app:
password: devpassword
recipients: dev@example.com
jwt:
secret: dev-secret-key-at-least-256-bits-long-for-hs256-algorithm
expiration-ms: 86400000
imap:
host: localhost
port: 993
inbox-folder: INBOX
openai:
api-key: dev-key
model: gpt-4o

View File

@@ -0,0 +1,55 @@
spring:
application:
name: condado-newsletter
datasource:
url: ${SPRING_DATASOURCE_URL}
username: ${SPRING_DATASOURCE_USERNAME}
password: ${SPRING_DATASOURCE_PASSWORD}
driver-class-name: org.postgresql.Driver
jpa:
hibernate:
ddl-auto: validate
show-sql: false
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
format_sql: true
mail:
host: ${MAIL_HOST}
port: ${MAIL_PORT}
username: ${MAIL_USERNAME}
password: ${MAIL_PASSWORD}
properties:
mail:
smtp:
auth: true
starttls:
enable: true
server:
port: 8080
app:
password: ${APP_PASSWORD}
recipients: ${APP_RECIPIENTS}
jwt:
secret: ${JWT_SECRET}
expiration-ms: ${JWT_EXPIRATION_MS:86400000}
imap:
host: ${IMAP_HOST}
port: ${IMAP_PORT:993}
inbox-folder: ${IMAP_INBOX_FOLDER:INBOX}
openai:
api-key: ${OPENAI_API_KEY}
model: ${OPENAI_MODEL:gpt-4o}
springdoc:
swagger-ui:
path: /swagger-ui.html
api-docs:
path: /v3/api-docs