English | 繁體中文
A customized AI open-source trending navigator designed by your Senior AI Mentor for absolute beginners. This project integrates Vite/React 19 + Tailwind CSS v4 for the frontend, Express (Node.js) for the backend API server, Gemini 3.5-flash for intelligent project auto-curation, and features a standalone Python automated crawler/scraper script.
- Stunning UI Interface: Designed using a clean, modern minimalist layout with high-contrast color palettes (Cosmic Slate Theme), combined with elegant transitions and micro-interactions.
- Trending AI Leaderboard: Dynamically fetches the latest trending AI repositories (defaults to GitHub's official Search API with caching, and falls back to pre-populated high-quality local data if rate-limited).
- AI-Powered Project Auto-Curation:
- Features 4 distinct learner persona types: Python Programmer, No-Code / UI Dragger, Fullstack Developer, and Theory Explorer.
- Leverages Gemini 3.5-flash structured JSON output (secured with strict
responseSchemaconfigurations) to curate exactly 3 starter projects tailored to your background, complete with "Mentor-recommended first steps".
- Local Database Persistence: Connects to an Express-powered lightweight file database (
database.json), enabling full CRUD operations for "Bookmarking/Unbookmarking" repos without any external database engines. - Independent Python Crawler: Includes a clean, beautifully annotated Python web scraper and API connector (
python_crawler.py) to help you understand web scraping and automated pipeline concepts.
| Layer | AI Studio Preview & Implementation | Mentor's Rookie Recommendation | Description |
|---|---|---|---|
| Frontend | Vite + React 19 + Tailwind CSS v4 | Vite + React + Tailwind | Blazing-fast HMR and highly modular component-driven interface development. |
| Backend | Express.js (TypeScript) | FastAPI (Python) | Since AI and Data Science operate primarily in Python, FastAPI is the ultimate lightweight choice for rookies. |
| Database | File-based Database (database.json) |
SQLite | Zero configuration needed; databases are stored as a local .db file. The perfect entry point for RDBMS concepts. |
| AI Integration | Google GenAI SDK (Gemini 3.5-flash) | Gemini 3.5-flash | Offers lightning-fast inference, exceptional instruction adherence, and highly competitive pricing. |
Follow these step-by-step instructions to configure both Python and Node.js environments inside your VMware Ubuntu virtual machine.
Ensure your Ubuntu operating system has Node.js (v18+ recommended) and Python 3.10+ installed.
# Check Node.js version
node -v
# Check Python version
python3 --version
# Check npm version
npm -vOn newer Ubuntu distros (e.g., Ubuntu 23.04+ or 24.04), installing packages system-wide via pip directly will trigger the error: externally-managed-environment (PEP 668 protection policy to prevent breaking system package managers).
-
Initialize a virtual environment:
python3 -m venv venv
-
Activate the virtual environment:
source venv/bin/activateYour terminal prompt will now be prefixed with
(venv). -
Install dependencies inside the virtual environment:
pip install requests beautifulsoup4
-
Run the Python scraper script:
python python_crawler.py
Upon successful execution, the script will fetch trending repos using both HTML web scraping and official GitHub Search APIs, displaying structured results directly on your CLI.
-
Install workspace npm dependencies (at root directory):
npm install
-
Configure Environment Variables: Duplicate
.env.exampleas.envand populate your Google Gemini API key:cp .env.example .env
Open
.envin your editor:GEMINI_API_KEY="YOUR_GEMINI_API_KEY_HERE"
(If no API Key is specified, the application automatically triggers a mock-curation mode so you can test all features without interruption).
-
Launch the development server:
npm run dev
Upon initialization, the server will output:
================================================= 🌐 Local Network Access: http://192.168.x.x:3000 🚀 Server is running at: http://localhost:3000 ================================================= -
Accessing the App in Browsers:
- Open Ubuntu's pre-installed browser (e.g., Firefox) and direct it to
http://localhost:3000. - To access the app from your Windows host, type the VMware local network IP (e.g.,
http://192.168.x.x:3000) shown on your terminal.
- Open Ubuntu's pre-installed browser (e.g., Firefox) and direct it to
- Symptom:
SyntaxError: invalid syntaxpointed atrepo_articles = soup.find_all("article", class="Box-row"). - Reasoning: In Python,
classis a reserved keyword for declaring classes. BeautifulSoup circumvents this naming conflict by requiringclass_(with an underscore) or utilizing an attribute dictionaryattrs={"class": "Box-row"}. - Resolved Code:
repo_articles = soup.find_all("article", class_="Box-row").
- Symptom: Starting
npm run devthrewReferenceError: require is not definedfromrequire("os"). - Reasoning: Because
"type": "module"is configured inpackage.json, our Node backend runs using standard ES Modules (ESM). CJS global features likerequireare not available under ESM. - Resolved Code: Implemented ESM-compliant
import os from "os";imports and utilizedos.networkInterfaces().
Now that you've successfully got the application up and running, here are several challenges from your mentor to level up your engineering skills:
- Combine Python Pipeline with Express API: Write an automated cron-job or script to periodically save crawled JSON datasets into
database.json, keeping your dashboard updated on autopilot. - Migrate JSON File Database to SQL: Transition your Express/FastAPI schema to SQLite using Sequelize, Drizzle ORM, or SQLAlchemy.
Feel free to ping me whenever you hit a roadblock. Happy Coding! 🚀