Vertex AI Operating System is a portfolio-ready Flask application that presents an AI command center for space-data exploration, local knowledge search, optional hosted AI answers, voice interaction, quizzes, and diagnostics.
The project keeps a simple Python/Flask structure while showing practical full-stack patterns: route-based APIs, JSON-backed local data, graceful fallbacks for external services, environment-based AI configuration, and a polished browser UI.
Vertex AI Operating System turns a collection of AI and data features into one cohesive dashboard. Users can ask Vertex questions, inspect NASA APOD and ISS data, browse curated space intelligence, use a quiz engine, test AI connectivity, and open a real-time sky module powered by Stellarium Web.
The app is intentionally small and readable, making it suitable for a portfolio review, live demo, or deployment on a Python web host such as Render.
- AI command console with local JSON knowledge first and optional Groq AI fallback
/admin/ai-testdiagnostics page for provider, key, response, and connection status- NASA Astronomy Picture of the Day with local backup image
- ISS tracker, launch dashboard, planet cards, agency cards, and intelligence feed
- Browser voice input and text-to-speech controls
- Quiz engine with categories, difficulty, timers, leaderboard, review, and certificate
- Sky Intelligence module using Stellarium Web plus local object facts
- Responsive dashboard UI with theme, presentation mode, and persistent settings
- Python, Flask, gunicorn
- HTML, CSS, JavaScript
- Local JSON data files
- NASA APOD API and ISS location API
- Optional Groq API
- Browser Web Speech and SpeechSynthesis APIs
python3 -m venv --clear .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.pyOpen:
http://127.0.0.1:5000
If port 5000 is busy:
flask --app main run --host 127.0.0.1 --port 5001Vertex works without a Groq key because the local knowledge base is checked first.
Create a local .env file when hosted AI answers are needed:
GROQ_API_KEY=your_groq_api_key_here
AI_PROVIDER=groq
GROQ_MODEL=llama-3.1-8b-instantNever commit real secrets. Configure them locally in .env or in the deployment provider's environment variables.
| Endpoint | Method | Purpose |
|---|---|---|
/ |
GET | Opens the Vertex dashboard |
/chat |
POST | Sends a user message to the AI response layer |
/api/ai-status |
GET | Returns current AI mode and key status |
/api/ai-test |
GET | Returns detailed AI diagnostics |
/admin/ai-test |
GET | Opens the AI diagnostics page |
/api/nasa/apod |
GET | Returns NASA APOD or local backup data |
/api/iss |
GET | Returns ISS location or demo fallback |
/api/launches |
GET | Returns local launch data |
/api/space-news |
GET | Returns local intelligence feed data |
/api/planets |
GET | Returns local planet cards |
/api/agencies |
GET | Returns local agency cards |
/api/quiz-database |
GET | Returns local quiz categories and questions |
/api/quiz-generate |
POST | Generates quiz questions with Groq or local fallback |
/mission-commander |
GET | Opens the architect profile page |
/about |
GET | Alias for the architect profile page |
/sky-explorer |
GET | Opens the sky intelligence module |
Browser UI
|
| fetch()
v
Flask app (main.py)
|
|-- /chat -----------------> chatbot.py
| |-- local JSON knowledge
| |-- optional Groq response
| |-- offline fallback
|
|-- /api/nasa/apod --------> NASA API or local backup image
|-- /api/iss --------------> ISS API or demo fallback
|-- /api/launches ---------> data/launches.json
|-- /api/space-news -------> data/space_news.json
|-- /api/planets ----------> data/planets.json
|-- /api/agencies ---------> data/agencies.json
|-- /api/quiz-database ----> data/quiz_database.json
The project is ready for Render-style Python deployment:
Build command: pip install -r requirements.txt
Start command: gunicorn main:app
The included Procfile and render.yaml use the same Flask entrypoint.
python3 -m py_compile main.py chatbot.pyRun the app locally and check:
//chat/api/ai-status/admin/ai-test/api/nasa/apod/sky-explorer
.
├── main.py
├── chatbot.py
├── templates/
├── static/
├── data/
├── requirements.txt
├── Procfile
├── render.yaml
└── README.md