A career guidance platform that helps students and young professionals identify the right path, build relevant skills, and make informed decisions about their future — personalized to where they are right now.
- Email-based registration with 6-digit verification code
- Secure password hashing with Werkzeug
- Session-based authentication with Flask-Session
- Animated onboarding landing page with swipeable info cards
- LinkedIn profile linking for personalized guidance
- Mobile-responsive UI across all pages
- Backend: Python, Flask, CS50 SQL
- Database: SQLite
- Frontend: HTML, CSS, Bootstrap 5
- Auth: Flask-Session, Werkzeug
- Email: Gmail SMTP via smtplib
- Deployment: Railway
git clone https://github.com/aissaadib/Upward.git
cd Upwardpython -m pip install -r requirements.txtMake sure upward.db is in the root directory with a users table:
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
email TEXT,
hash TEXT,
skill TEXT
);In app.py, replace the SMTP credentials with your own:
SMTP_EMAIL = "your_email@gmail.com"
SMTP_PASSWORD = "your_app_password" # Gmail App PasswordTo get a Gmail App Password: Google Account → Security → 2-Step Verification → App Passwords
python app.pyThen open http://localhost:5000 in your browser.
This project is deployed on Railway.
Build command:
pip install -r requirements.txt
Start command:
gunicorn app:app
Upward/
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── upward.db # SQLite database
└── templates/
├── login.html
├── register.html
├── verify.html
├── onboarding.html
└── index.html
- AI Career Advisor with personalized roadmaps
- Future Risk Score based on automation trends
- Financial Resilience Score
- Skill Tree — visual map of what to learn next
- What-If Simulator for career scenarios
- Weekly Growth Plans
- Country and region salary comparisons
- Google OAuth login
- Portfolio analyzer (resume + GitHub + LinkedIn)
MIT