Logo Lanfrica

A-I-Jeremiah/Smart-Career-Portal

Domain:

education

Record type:

software
Creator:
A-I
Host:
A student career predictor app for predicting career path for students in Senior Secondary School in Nigeria. # Smart Career Portal ## Project Summary Smart Career Portal is a Nigerian student career guidance platform built as a multi-frontend system: - `backend/`: FastAPI REST API with JWT authentication, machine learning inference, recommendation persistence and chat history. - `app.py`: A Streamlit dashboard that can run independently or integrate with the backend API. It includes local user authentication, grade and test capture, local ML inference, Gemini narrative generation and chatbot interaction. - `frontend/`: A React/Vite web portal that consumes the backend API for auth, academic records, test management, recommendation generation, and conversational follow-up. The system is powered by: - SQLite as the primary persistence layer (`career_portal.db`). - XGBoost-based career recommendation ML artifacts in `backend/models/`. - Google Gemini via `google-genai` for narrative generation and AI counselling. ## System Architecture The platform is built as a service-oriented architecture with separate user-facing UI layers and a shared backend. ```mermaid graph TB subgraph "Frontend Layer" React[React / Vite Web App Main Production Frontend] Streamlit[Streamlit Dashboard Mock / Testing App] end subgraph "Backend Layer" FastAPI[FastAPI REST API Server Core Business Logic] SQLite[SQLite Database Users, Results, Tests, Recommendations, Chat] ML[XGBoost ML Models Career Prediction] Gemini[Google Gemini API Narrative & AI Chat] end subgraph "External Services" Render[Render.com Hosting FastAPI] StreamlitCloud[Streamlit Cloud Hosting Mock App] end React -->|JWT Auth + REST API Calls| FastAPI Streamlit -->|REST API Calls / Local ML| FastAPI Streamlit -.->|Testing Only| FastAPI FastAPI -->|Persistence| SQLite FastAPI -->|ML Inference| ML FastAPI -->|Narrative Generation & Chat| Gemini style React fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style Streamlit fill:#f1f8e9,stroke:#689f38,stroke-width:2px,stroke-dasharray: 5 5 style FastAPI fill:#f3e5f5,stroke:#7b1fa2,stroke- …