Skip to content

uzoawili/django-bucketlist-application

Repository files navigation

The BucketList App Build Status Coverage Status

A simple, easy to use app that helps you organize and manage collections of bucket lists. Bucket lists are a cool way to keep track of all the oh-so-great-and-mighty things you plan to do before you...erm, die.

Features

  • A simple and responsive web app. You can try it out here.
  • RESTful, well documented API. See the API documentation here.

Tech

Some of the technologies leveraged in building The BucketList App include:

  • Django - Python web development framework for building web apps quickly and with less code.
  • Django REST Framework - powerful and flexible toolkit for building Web APIs in Django.
  • PostgreSQL - relational database management system.
  • Swagger UI - tool for interactive documentation of RESTful APIs
  • Bower - front end javascript dependency manager.
  • MaterializeCSS - modern responsive front-end framework based on Material Design.
  • jQuery - fast, small, and feature-rich JavaScript library.
  • Packery - a clever grid and bin-packing layout library.
  • Flickity - a front-end library for responsive, flickable galleries.

Usage

Installation

Follow the steps below to install The BucketList App on your local machine:

  1. Ensure you have Python >= 2.7 installed. You can get it here. Using a virtual environment is also recommended.

  2. Ensure you have npm and bower installed. You can get npm here.

  3. Ensure you have PostgreSQL installed and create a database with the name bucketlist.

  4. Clone this repository to your machine.

  5. In the project root, add a .env.yml file to hold all your environment variables, such your secret key (required) and database credentials e.g:

    SECRET_KEY:
    'very-very-very-secret-key'
    DATABASE_USER:
    'foo_user'
    DATABASE_PASSWORD:
    'youcannotguessme' 
    
  6. Install all python and front end dependencies by running the followings commands in order, from in the project root:

    $ npm install -g bower
    $ bower install
    $ pip install -r requirements.txt
    
  7. To setup static files and database migrations, run (also in the project root):

    $ bucketlist/python manage.py collectstatic
    $ python bucketlist/manage.py makemigrations
    $ python bucketlist/manage.py migrate
    

Running the Server

Run $ bucketlist/python manage.py runserver to start the server.

Testing

  • To run tests:
    $ python bucketlist/manage.py test --settings=bucketlist.settings.testing

  • For the coverage report:

    1. $ coverage run --source=dasboard,api bucketlist/manage.py test bucketlist --settings=bucketlist.settings.testing
    2. $ coverage report
    3. $ coverage html

Mockups:

Some of the high-fidelity mockups created for the UI have been included in this repo in the /mockups folder.

Licence:

GNU GPL

About

Bucket list web application and API. Built with Django.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published