This app allows users to easily manage lists of activities, adventures, experiences e.t.c. they would like to do/have during their lifetime.
- GUI
- RESTful API
- UI documentation
See the API documentation here.
There were a couple of third party libraries used for this project. The major ones are listed:
- Django - a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
- Django REST Framework - Django REST framework is a powerful and flexible toolkit for building Web APIs.
- PostgreSQL - a powerful, open source object-relational database system.
- Bower - package that manages components that contain HTML, CSS, JavaScript, fonts or image files.
- Django-bower - Easy way to use bower with your Django project.
- React - a Javascript library for building user interfaces.
- React-bootstrap - CSS framework rebuilt for React.
- Webpack - a module bundler.
- jQuery - a fast, small, and feature-rich JavaScript library.
- React Packery Component - Javascript library that makes gapless and draggable layouts.
- React Router - a complete routing library for React.
- Redux - a predictable state container for JavaScript apps.
- Axios - Promise based HTTP client for the browser and node.js.
- MomentJS - a library that Parses, validates, manipulates, and displays dates in JavaScript.
Others can be viewed in the requirements.txt and package.json files found in project's root fould.
- Python version >= 2.7. Get it here.
- Postgres
- NodeJS and NPM
- Have a postgresSQL database called bucketlist_db.
-
Clone this repository to the folder where you would like it installed on your machine.
-
In the project root, add a
.env.yml
file to hold all your environment variables. The variables below must be given a value:SECRET_KEY: 'very-very-very-secret-key' DATABASE_USER: 'foo_user' DATABASE_PASSWORD: 'youcannotguessme'
-
It is recommended that you create a virtual environment here before proceeding with installation:
$ mkvirtualenv name_of_virtual_environment
-
Install all project's dependencies both backend and frontend by running the following commands in order (from project root):
$ pip install -r requirements.txt $ npm install $ bower install
-
To setup static files and database migrations, run (also in the project root):
$ python bucketlist/manage.py collectstatic $ python bucketlist/manage.py makemigrations $ python bucketlist/manage.py migrate
After successfully installing project on your machine, run server with:
$ python bucketlist/manage.py runserver
To run tests:
$ python bucketlist/manage.py test --settings=bucketlist.settings.test
For coverage report:
$ coverage run --source=api,frontend bucketlist/manage.py test bucketlist --noinput --settings=bucketlist.settings.test
$ coverage report -m
GNU GPL
Visit Do the bucket to play with the live app on heroku.