CS162 Kanban Board

The website is deployed on heroku and can be accessed on the following url: https://kanban-app-cs162.herokuapp.com/

Project Structure

/web contains application code.

/web/static css files.

/web/templates html files.

/web/__init__.py project initializer file.

/web/auth.py routes related to authorization/authentication.

/web/config.py different configurations based on running environment (test/dev/prod).

/web/models.py ORM mapping (from DB models to python classes) using SQLAlchemy.

/web/routes.py application routes.

/unit_test contains 25 unit tests in total. Tests for: registration, login, reset password, and kanban operations (todo, doing, done).

/migrations directory used to control DB migrations, using Flask-migrate.

.env/example contains all variables needed on your .env so the project runs on production or locally.

Procfile used for heroku deployment.

Virtual Environment

Creation of virtualenv:

$ virtualenv -p python3 venv

If the above code does not work, you could also do

$ python3 -m venv venv

To activate the virtualenv:

$ source venv/bin/activate

Or, if you are using Windows - reference source:

$ venv\Scripts\activate

To deactivate the virtualenv (after you finished working):

$ deactivate

Install dependencies in virtual environment:

$ pip3 install -r requirements.txt

Environment Variables

.env.example is a file containing all the environment variables that you need to define in a .env file for this project to run.

Run Application

Start the server on a mac locally by running:

$ source venv/bin/activate
$ pip install -r requirements.txt
$ export FLASK_ENV=dev
$ export FLASK_APP=web
$ python3 -m flask run

Unit Tests

To run the unit tests on mac use the following commands:

$ source venv/bin/activate
$ pip install -r requirements.txt
$ export FLASK_ENV=test
$ export SECRET_KEY='test-key'
$ pytest unit_test