My personal portfolio website. Built with Flask as a learning project, completely without AI.
Deployed on Render.
- Shows my projects with tags, descriptions and links
- Contact form that stores messages in the database
- Small word typing game after submitting the contact form
- Admin panel to manage projects (add, edit, delete) and view contact inquiries
- Python / Flask
- SQLAlchemy + Flask-Migrate
- Jinja2 Templates
- PostgreSQL
- Gunicorn (production)
pip install -r requirements.txtCreate a .env file:
FLASK_APP=run.py
FLASK_DEBUG=True
DATABASE_URL=<your database url>
SECRET_KEY=<your secret key>
ADMIN_USERNAME=<your admin username>
ADMIN_PASSWORD=<your admin password>
flask db upgrade
flask seedflask seed loads initial project data from app/mock_data/projects.json.
Development:
python run.pyProduction:
gunicorn wsgi:appProduction Link: https://portfolio-bm3c.onrender.com/
Admin Panel: https://portfolio-bm3c.onrender.com/admin