jokijen / hyped-climbing-tracker

Web application created for the course "Tietokannat ja web-ohjelmointi" (University of Helsinki)
MIT License
0 stars 0 forks source link

Hyped - An outdoors climbing tracker

Hyped is a web application that allows users to track routes they have climbed outdoors, rate them, add crags to favourites, and manage a tick-list (essentially a “to-climb” list) for future adventures.

Every user is either a regular user or administrator.

The web app is built using Python and Flask. It uses a PostgreSQL database, with HTML and CSS for frontend.

Table of contents

Motivation

This project has been created for learning purposes and the course "Tietokannat ja web-ohjelmointi", 2024 (University of Helsinki).

Application functionality and features

Crags

Climbs

Logbook and tick-list

Favourite crags

Preview screenshots

Home Screenshot of Home

Add climb Screenshot of Add climb

Current state of the application

The Hyped application is fully functional and development is complete.

Completed features

Features have been completed as per Application functionality and features and the application is ready for use.

For the purposes of the course, this scope seemed reasonable and some changes were made to the intial plan. The primary objectives were learning diverse features and development techniques, as opposed to implementing numerous features that are technically very similar to one-another. For this reason some initial feature ideas were removed and new ones added. In order to focus on finding ways to implement all features using HTML and CSS, JavaScript was exclueded from the project.

Development overview

Potential further development

Testing the application

You can test the application by taking the following steps:

  1. Clone the repository and go to its root directory
  2. Create a file .env and add "DATABASE_URL=" with path to database and "SECRET_KEY=" with a secret key
  3. Create a virtual environment with $ python3 -m venv venv
  4. Activate the virtual environment with $ source venv/bin/activate
  5. Install all the necessary packages using pip with $ pip install -r requirements.txt
  6. Start up PostgreSQL with $ start-pg.sh (you can use it in terminal with the command psql) - PostgreSQL was installed using a custom installation script that can be found here: https://github.com/hy-tsoha/local-pg
  7. Set up the database schema, run $ psql < schema.sql
  8. If you want to populate your database, create two users by using the app and registering two new users. Then run the commands in the prepared data file by running the following command (in the app directory) run $ psql < prepared_data.sql
  9. Start the application with $ flask run

Using the app

  1. Register a new user
  2. Log in to access the features
  3. Browse crags and climbs, add crags to favourites, tick climbs or mark them sent, and comment on climbs. Admin users may add new crags and climbs.
  4. Log out

Credits