Skip to content

Repository files navigation

Vertex AI Operating System

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.

Project Description

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.

Features

  • AI command console with local JSON knowledge first and optional Groq AI fallback
  • /admin/ai-test diagnostics 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

Tech Stack

  • 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

Run Locally

python3 -m venv --clear .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py

Open:

http://127.0.0.1:5000

If port 5000 is busy:

flask --app main run --host 127.0.0.1 --port 5001

Optional AI Setup

Vertex 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-instant

Never commit real secrets. Configure them locally in .env or in the deployment provider's environment variables.

API Endpoints

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

Architecture

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

Deployment

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.

Verification

python3 -m py_compile main.py chatbot.py

Run the app locally and check:

  • /
  • /chat
  • /api/ai-status
  • /admin/ai-test
  • /api/nasa/apod
  • /sky-explorer

Repository Structure

.
├── main.py
├── chatbot.py
├── templates/
├── static/
├── data/
├── requirements.txt
├── Procfile
├── render.yaml
└── README.md

About

vertex

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages