Hiking Habit is a personal project built over the course of two months to gain experience designing, building and deploying full-stack web-application.
This project was inspired by my love of hiking and was built to help me track my progress as a novice hiker.
Hiking-habit was not built was the intention of building usual users or for comercial gain.
Check out the web-app at hiking-habit.com (deployed using AWS Lightsail)
- user registration, log-in, and basic profile
- reactive display & design
- trail search based on zipcode and other optional criteria
- trail results display in a compact format with border coloring by difficulty
- hike creation from trail search
- hike completion & cancelation
- hike result generation for completed hikes
- goal creation & cancelation
- view progress (via completed hikes) towards different goals
Backend
Python, Flask, SQLAlchemy, PostgreSQL, pgeocode
Frontend
Javascript, jQuery, React, React Router, Babel, Chart.js, Bootstrap, Alertify.js, Popper.js, Google Fonts, HTML5, CSS3
APIs:
REI's The Hiking Project
Install a code editor like VS code.
Install postgreSQL for the relational database.
Install python3
Install the package installer for Python pip
Clone or fork repository:
$ git clone https://github.com/katerina-kossler/hiking-habit.git
Create and activate a virtual environment inside the 'hiking-habit' directory:
$ virtualenv env
$ source env/bin/activate
Install dependencies:
$ pip install -r requirements.txt
Make an account with The Hiking Project & get an API key from the API Page.
Store this key in a file named 'secrets.sh'; do NOT check this file in using Git:
$ code secrets.sh
$ source secrets.sh
Create the hiking-habit database (uses postgreSQL):
$ createdb hiking-habit
Create all tables and relations in the database (stored in model.py):
$ python3 -i model.py
>>> db.create_all()
>>> quit()
Run the app from the command line:
$ python server.py
In the next iteration of this project, I want to on features including:
- move the goal progress display to a progress dashboard
- integrate a map display using the Google Maps Api to show markers for trail locations
- futher streamline the styling and design of the app
- include more information from the hike result in goal progress