An all-in-one AI-powered web platform that helps students choose careers, plan their study sessions, analyze their resumes, and find learning resources — built with FastAPI + Next.js 14 + multiple AI/ML components.
| Module | What it does | AI / Tech |
|---|---|---|
| Career Predictor | Predicts best-fit tech career from 14 skill ratings | Decision Tree Classifier (scikit-learn) |
| AI Chatbot | Answers study & career questions conversationally | RAG — TF-IDF + FAISS retrieval → LLaMA 3 (Groq) |
| Study Planner | Generates personalized Pomodoro study schedules | RL-inspired greedy scheduling heuristic |
| Resume Analyzer | Scores PDF resumes against 30 industry skills | SpaCy NER + PyMuPDF |
| Resource Finder | Recommends learning resources by career goal | TF-IDF content-based filtering |
Backend
- Python 3.11 · FastAPI · Uvicorn
- scikit-learn (TF-IDF, Decision Tree, cosine similarity)
- FAISS (vector similarity search)
- SpaCy
en_core_web_sm(NER + lemmatization) - PyMuPDF (PDF parsing)
- Groq API — LLaMA 3 (free tier LLM generation)
- python-dotenv · joblib · pandas · numpy
Frontend
- Next.js 14 (App Router) · React 18 · TypeScript
- TailwindCSS · Framer Motion
- Zustand (state management)
- Axios · react-markdown · remark-gfm
sylorix/
├── backend/
│ ├── main.py # FastAPI app, CORS, router mounts
│ ├── requirements.txt
│ ├── .env.example # Copy to .env and fill in keys
│ ├── routers/
│ │ ├── career.py # POST /api/career/predict
│ │ ├── chatbot.py # POST /api/chatbot/chat (RAG + LLaMA 3)
│ │ ├── planner.py # POST /api/planner/generate
│ │ ├── resume.py # POST /api/resume/analyze
│ │ └── resources.py # POST /api/resources/recommend
│ ├── ml/
│ │ ├── data_generator.py # Generate synthetic training data
│ │ └── model_trainer.py # Train & save Decision Tree model
│ ├── models/ # career_model.pkl (gitignored — regenerate)
│ ├── datasets/ # career_dataset.csv (synthetic)
│ └── knowledge/
│ └── sylorix_kb.txt # RAG knowledge base (30 documents)
├── frontend/
│ ├── src/
│ │ ├── app/ # Next.js App Router pages
│ │ │ ├── page.tsx # Landing / dashboard
│ │ │ ├── career/
│ │ │ ├── chat/
│ │ │ ├── planner/
│ │ │ ├── resume/
│ │ │ └── resources/
│ │ ├── components/
│ │ │ └── Sidebar.tsx # Fixed icon sidebar
│ │ └── store/
│ │ └── useStore.ts # Zustand store (apiBaseUrl)
│ ├── package.json
│ └── tailwind.config.ts
└── docs/
├── Sylorix_Project_Documentation.html
└── Sylorix_Project_Documentation.pdf
- Python 3.11+
- Node.js 18+
- Groq API key (free — no credit card)
cd backend
# Create and activate virtual environment
python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Download SpaCy model
python -m spacy download en_core_web_sm
# Set up environment variables
cp .env.example .env
# Edit .env and add your GROQ_API_KEY
# Generate training data and train the model (one-time)
python backend/ml/data_generator.py
python backend/ml/model_trainer.py
# Start the API server
uvicorn main:app --reload --port 8000API is live at http://localhost:8000
Interactive docs: http://localhost:8000/docs
cd frontend
npm install
npm run devApp is live at http://localhost:3000
Create backend/.env from the provided backend/.env.example:
# Free Groq key — https://console.groq.com/keys (14,400 req/day, no card)
GROQ_API_KEY=your_groq_api_key_here
# Optional — Gemini fallback
GEMINI_API_KEY=your_gemini_api_key_hereSecurity:
.envis gitignored. Never commit real API keys.
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/career/predict |
Career prediction from skill scores |
| POST | /api/chatbot/chat |
RAG chatbot (query + history) |
| POST | /api/planner/generate |
Generate study schedule |
| POST | /api/resume/analyze |
Analyze uploaded PDF resume |
| POST | /api/resources/recommend |
Find learning resources |
Career Predictor: 14 skill inputs → Decision Tree → 1 of 7 career labels + probabilities
RAG Chatbot: query
│
▼
TF-IDF vectorize → FAISS top-5 search (cosine similarity)
│ retrieved context chunks
▼
LLaMA 3 (Groq API)
├─ System prompt: Sylorix AI persona
├─ Context: KB chunks
└─ History: conversation turns
│
▼
Grounded, student-friendly response
Resume Analyzer: PDF upload → PyMuPDF text → SpaCy NER + lemmatization
→ skill matching against 30-item industry set → score + gaps
Study Planner: subjects + difficulty → greedy priority sort → Pomodoro interleaving
→ efficiency score (0.85 + 0.1 × min(1, block/25))
Full technical documentation (architecture, AI deep-dive, viva Q&A) is available in docs/Sylorix_Project_Documentation.pdf.
MIT