A stunning, modern career navigation platform with SQLite database, React frontend with 3D effects, and AI-powered guidance.
- πΊοΈ Learning Roadmaps - Personalized step-by-step career paths
- π Study Resources - Curated learning materials organized by topic
- π‘ Interview Prep - Real-world questions with detailed answers
- π Career Insights - Data-driven analytics and progress tracking
- π€ AI Career Guide - Intelligent assistant for career guidance
- π¨ Stunning UI - 3D effects, 2D canvas animations, glassmorphism
- Python 3.8+ with Flask
- SQLite database (easily manage data in VS Code)
- Flask-CORS for cross-origin support
- React 18 with Vite
- Tailwind CSS for styling
- Framer Motion for animations
- React Three Fiber for 3D graphics
- Canvas API for 2D animations
chmod +x start.sh
./start.shBackend:
cd backend
pip install -r requirements.txt
python database/seed_data.py # Initialize database with sample data
python app.pyFrontend:
cd frontend-react
npm install
npm run devNAVIQ/
βββ backend/
β βββ app.py # Flask API server
β βββ database/
β β βββ db_setup.py # Database schema
β β βββ seed_data.py # Sample data seeder
β β βββ naviq.db # SQLite database (auto-created)
β βββ repository/
β βββ db_repo.py # Database operations
βββ frontend-react/
β βββ src/
β β βββ components/
β β β βββ 3d/ # Three.js 3D components
β β β βββ canvas/ # 2D canvas animations
β β β βββ Layout.jsx # Main layout
β β βββ pages/ # Page components
β β βββ services/ # API services
β β βββ styles/ # CSS files
β βββ package.json
βββ frontend/ # Legacy frontend (HTML/CSS/JS)
βββ start.sh # Quick start script
The SQLite database (backend/database/naviq.db) can be easily managed in VS Code:
- Install the SQLite Viewer extension
- Open
naviq.dbto view/edit data - Use the API endpoints to add/remove data programmatically
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/roles |
Get all roles |
| POST | /api/roles |
Create a new role |
| PUT | /api/roles/:id |
Update a role |
| DELETE | /api/roles/:id |
Delete a role |
| GET | /api/interview?role=X |
Get interview questions |
| POST | /api/interview |
Add a question |
| PUT | /api/interview/:id |
Update a question |
| DELETE | /api/interview/:id |
Delete a question |
| GET | /api/roadmap?goal=X&days=30 |
Get learning roadmap |
| GET | /api/roadmap/goals |
Get all available goals |
| GET | /api/study |
Get study topics |
| POST | /api/study |
Create study topic |
| GET | /api/insights |
Get career insights |
| POST | /api/insights |
Create insight |
| PUT | /api/insights/:id |
Update insight |
| DELETE | /api/insights/:id |
Delete insight |
- Floating orbs with distortion materials
- Animated particle fields
- Interactive 3D scene on home page
- Particle network with mouse interaction
- Gradient blob animations
- Wave animations
- Glassmorphism cards
- Smooth scroll animations
- Dark/Light mode toggle
- Responsive design for all screens
Edit backend/app.py:
app.run(debug=True, port=5000)Edit frontend-react/src/services/api.js:
const API_BASE_URL = 'http://localhost:5000'You can directly edit the SQLite database:
- Install "SQLite Viewer" or "SQLite" extension in VS Code
- Navigate to
backend/database/naviq.db - Double-click to open and view/edit tables
- Changes are reflected immediately in the app
Or use the REST API with tools like Postman or curl:
# Add a new role
curl -X POST http://localhost:5000/api/roles \
-H "Content-Type: application/json" \
-d '{"name": "Full Stack Developer", "description": "Build complete applications", "icon": "π", "color": "#3B82F6"}'
# Add an interview question
curl -X POST http://localhost:5000/api/interview \
-H "Content-Type: application/json" \
-d '{"role_id": 1, "question": "What is your experience with...", "difficulty": "Intermediate", "focus": "Experience"}'MIT License - feel free to use this project for learning and personal projects!
Made with β€οΈ for career navigators everywhere
pip install -r backend/requirements.txt- Run the Flask application as a package so imports remain consistent:
python -m backend.app
- The backend server will start on
http://127.0.0.1:5000.
- Open the
frontend/index.htmlfile directly in your web browser. - The Naviq interface will call the local backend via
fetch()and render interview decks plus roadmaps.
This will containerize the backend service. The frontend can still be run by opening index.html in the browser.
- Make sure you have Docker installed and running.
- From the root of the project (
smart-career-platform/), run:docker build -t smart-career-backend -f docker/Dockerfile .
- Run the container, mapping port 5000 on your host to port 5000 in the container:
docker run -p 5000:5000 smart-career-backend
- The backend will be accessible at
http://localhost:5000. =======