An interactive time and task management ecosystem designed to prioritize daily workloads using artificial intelligence.
Welcome to the official GitHub organization for RedCheck. Here you will find the source code, architecture, and deployment configurations for the entire platform.
RedCheck was engineered with a strict focus on performance, frictionless user experience, and scalable software architecture.
To maintain a clean separation of concerns, the RedCheck infrastructure is divided into specialized micro-repositories:
- redcheck-backend: The core API. Built with Java and Spring Boot. Handles stateless JWT authentication, complex business logic, MySQL database interactions, and the prompt engineering bridge with Google Gemini AI models.
- redcheck-frontend: The main Single Page Application (SPA). Built with React, TypeScript, and Tailwind CSS. Features dynamic agenda views, recurrent task management, and an interactive AI priority board.
- redcheck-landing: The static presentation website. Built with Astro for zero-JS delivery by default and maximum SEO performance. Includes native internationalization (i18n) and smooth DOM animations.
The entire platform is designed to be self-hosted via containerization.
NGINX acts as the main entry point and reverse proxy. It routes global traffic between the static landing page on the root domain and the React application on the dedicated sub-domain, while securely proxying RESTful API requests to the isolated Spring Boot container network.
graph TD
%% Node Styles
classDef client fill:#2d3436,stroke:#636e72,stroke-width:2px,color:#fff;
classDef proxy fill:#009639,stroke:#00732c,stroke-width:2px,color:#fff;
classDef frontend fill:#61DAFB,stroke:#00b8d4,stroke-width:2px,color:#000,font-weight:bold;
classDef static fill:#FF5D01,stroke:#d14d00,stroke-width:2px,color:#fff;
classDef backend fill:#6DB33F,stroke:#4a8229,stroke-width:2px,color:#fff;
classDef db fill:#00758F,stroke:#005c70,stroke-width:2px,color:#fff;
classDef aiengine fill:#3670A0,stroke:#29567c,stroke-width:2px,color:#fff;
classDef vector fill:#FF4F00,stroke:#c43c00,stroke-width:2px,color:#fff;
classDef external fill:#4285F4,stroke:#2b66c4,stroke-width:2px,color:#fff;
%% External Elements
Users(("Users<br>Browser / Mobile")):::client
Gemini["Google Gemini 2.5 Flash<br>(External API)"]:::external
%% VPS Server
subgraph VPS ["Ubuntu Server (Host)"]
style VPS fill:none,stroke:#636e72,stroke-width:2px,stroke-dasharray: 5 5
NGINX["NGINX API Gateway<br>(Ports 80/443 + SSL)"]:::proxy
%% Docker Internal Network
subgraph DockerNet ["Internal Network: redcheck-net"]
style DockerNet fill:none,stroke:#0984e3,stroke-width:2px
Landing["Container: Landing<br>(Astro)"]:::static
React["Container: Frontend<br>(React + Vite)"]:::frontend
Spring["Container: Backend<br>(Spring Boot)"]:::backend
MySQL[("Container: Database<br>(MySQL 8.0)")]:::db
%% SmartCheck AI Sub-module
subgraph AIModule ["SmartCheck AI Module"]
style AIModule fill:none,stroke:#3670A0,stroke-width:2px,stroke-dasharray: 5 5
SmartCheck["Container: SmartCheck<br>(Python / FastAPI)"]:::aiengine
ChromaDB[("Container: Vector DB<br>(ChromaDB)")]:::vector
end
end
end
%% Traffic & Routing Flow
Users -- "HTTPS" --> NGINX
NGINX -- "redcheckapp.com<br>(+ 301 Redirect from redcheck.es)" --> Landing
NGINX -- "my.redcheckapp.com" --> React
React -. "API Calls" .-> Spring
%% AI & Data Persistence Flow
Spring -- "1. Sends Context & Tasks" --> SmartCheck
SmartCheck == "2. RAG Context Retrieval" ==> ChromaDB
SmartCheck -- "3. RAG Augmented Prompt" --> Gemini
Gemini -. "4. AI Priority JSON" .-> SmartCheck
SmartCheck -. "5. Validated Daily Plan" .-> Spring
Spring == "6. Persists AI Data &<br>App State (TCP 3306)" ==> MySQL
- Official Website: redcheckapp.com
- Web Application: my.redcheckapp.com


