Welcome to the repository for Dublin Bikes - a software engineering group project developed by Kieran Curtin, Moriah Fiebiger and Patrick Kennedy as part of COMP30830 Software Engineering at University College Dublin. This document outlines what the project is, what this repository contains, and how to navigate through it.
The goal of our project was to develop a web application to display occupancy and weather information for Dublin Bikes.
It comprises a Flask application for the web application, as well as a data analysis component of a web scraper and machine learning model.
This project uses a monolithic repository structure, with the following branching strategy. The 'master' branch consists of production-ready, deployable code. These are tagged using semantic versioning (e.g. MAJOR.MINOR.PATCH). The 'develop' branch is the 'work-in-progress' branch, that all feature branches are taken from and merged back into. Feature branches are signified with a 'feature-' prefix.
This module contains the application code for the Dublin Bikes Flask Web Application. It consists of a front-end written in HTML, CSS and JavaScript. To launch the web application on your local host:
- Create a Conda virtual environment as described in the next section below.
- In the root directory setup the following environment variable by typing them into the console:
export FLASK_APP=flask_app.py
- Add the config.py file to the
flask_app
directory. Consult with a developer on the team for access to this file. - To start the application type the
flask run
command from the root module directory.
First, create your Conda environment (e.g. flask_app) as follows:
conda create -n flask_app python=3.7
Activate your new environment with conda activate flask_app
and install the required Python packages using the command:
pip install -r requirements.txt
To make contributions to this project::
- Clone the repository and create a feature branch from 'develop'.
- When you're happy for others to see and review your changes, create a pull request with develop as the base (it should default to that anyway).
- Once it's reviewed by another developer, you can merge your changes to 'develop'.
Towards the end of the sprint, or other production milestones, a release version is merged from 'develop' to 'master' with a suitable versioned tag.