Parki is a full-stack web application for skiers and snowboarders to discover terrain parks and share current conditions with other riders.
Project status: Historical portfolio project. Parki was my Flatiron School software engineering capstone, completed in 2023. It is preserved to show my early full-stack development work and is not currently deployed or actively maintained.
- User signup, login, session authentication, and logout
- A browsable directory of ski resorts and terrain parks
- A community feed organized by resort
- User-submitted condition reports with optional image links
- Personal comment history with editing and deletion
- A REST API backed by relational data models
- Frontend: React, React Router, React Bootstrap, Formik, and Yup
- Backend: Python, Flask, Flask-RESTful, Flask-SQLAlchemy, and Flask-Bcrypt
- Database: SQLite with Alembic/Flask-Migrate migrations
- Data model: Users, resorts, and comments with relational associations
client/skirec/ React application
server/ Flask API, models, migrations, and seed data
Generated dependencies, compiled Python files, local environment files, and development databases are intentionally excluded from version control.
Parki was built with Python 3.8 and Node.js. Because it is a historical project, newer runtime versions may require dependency updates.
From the repository root:
pipenv install
pipenv shell
export SECRET_KEY="$(python -c 'import secrets; print(secrets.token_hex(32))')"
cd server
flask --app app db upgrade
python seed.py
python app.pyThe API runs at http://localhost:5555.
In a second terminal:
cd client/skirec
npm ci
npm startThe React development server uses the API proxy configured for port 5555.
Parki represents my transition from frontend fundamentals into full-stack application development. The capstone gave me hands-on experience connecting a React interface to a Flask API, modeling relational data, implementing authentication, handling user-generated content, and debugging behavior across the client/server boundary.