Prioritizing methods utilizes the principles of importance and urgency to organize priorities and workload. Here are examples of approach:
- ABC analysis
- Pareto analysis
- Eisenhower Box
- Priority Matrix
- ...
For more information follow this link
The method i implement is the Prioritization Matrix and it looks like image below
The purpose of this apps is to use the easy way to prioritize a particular subject (i.e. qualities, tasks, todos ...). It doesn't become obvious what is the right order of those properties/items. This app clearify important properties as a simple sorted list.
Classical approach is to do it manually, as you can see on image above (priority matrix). It will take some work to fill all items on paper, compare and count them, replace items order. So, as you can see, its time consuming.
Therefore this app is an easy tool to create a list and order your items with a few clicks.
The app go through a random loop of properties, showing them as pairs. There you can choose only one, which is more of value. It continue until all properties were met once. In the end, you get a result as a list of key:value pairs of those properties, ordered descending. The property on top have the most "points" and last one the least or no "points". Thats how your properties will give a result of priority grid. From most to least important.
You can make as many headings/titles as you like and you can create a corresponding new list to prioritize. You can also run your "matrix" again after reset. Consider that number of your items will give multiple pairs i.e. 6 items = 15 possible pairs, 10 items = 45. It can still take few minutes to figure out your priority grid.
register
and create new account orlogin
to your password protected account- on main page
index
is a buttoncreate new
to start, it redirect you to title page - on
title
page fill input with a title of your priority list, i.e.Qualities
- now you are redirected to
items
page where you create a list of items to work with, i.e.Strong
Fast
Something
...
afer finish push the buttonstart choosing
- now you are redirected to
choose
page where you get pairs of items. Choose only one of them, which is more valuable for you i.e.:Strong
ORFast
- those pairs will continue until all possible combinations are shown (i.e. 6 items = 15 possible pairs)
- when finished, you will be redirected to
result
page where you get a list of your items sorted from most for least important - on
history
page are stored all your lists with titles and corresponding items
Steps of preperation to work with project:
-
download and install VSCode (or code editor of your choice) for local work
-
install python3, to check current version:
python3 --version
-
inside of the app directory, install virtual environment:
pip3 install virtualenv
-
to use flask run command, install virtual env:
virtualenv env
-
start using virtual env:
source env/bin/activate
-
install flask:
pip3 install flask
-
start local server to see the development in browser (localhost:5000):
flask run
orpython3 app.py
-
you can also install gunicorn for local testing
pip install gunicorn
-
install werkzeug:
pip install werkzeug
- Flask basic files ( app.py, /templates, /static/assets, styles.css)
- Preloader animation with logo on index page (CSS, JavaScript)
- Introduction and "rules of game" on index site as accordion (Bootstrap)
- Bootstrap responsive navigation menu, buttons, layout, fonts, lists
- SQLite3 tables to store data in db (priorities.db)
- Python implementation of choosing "game"
- Access to database in history to show all of your priority results
- Possibility to add, change, delete grids titles and/or items
- Config file for generating secret_key
- Debugging, checking functionality, fixing bugs
- Add login and register pages
- Update history for individual user
- import of dependencies (Flask, os, config, random, sqlite3, werkzeug)
- define functions for:
> database
> error check
> routes
> login/register functionality
> history of user
> reset
> delete item
> delete title and items
configure automatically generated secret_key
sqlite3 commands to create and delete database tables
Database tables for storing titles and corresponding items
required installed dependencies
basic page, fully responsive with title, menu and jinja main container template
bootstrap plugin for forms, buttons, layout, responsive menu
login page with inputs for username and password
registration page with input for username, password and confirmation field
after registration and/or login redirect here
homepage with introduction, rules and link to create new grid
preloader with app logo
start of priority grid, with title as header for list of items
after submit redirect to items
here are defined items, list of priorities
option to delete wrong item
button to continue to choose page
here are two buttons displayed where every represents one of items
written logic to count points for chosen item
items are shown and comapred as many times as all possible compares are made
after finish comparison, redirect to result page
after all calculation from choose session, title and corresponding items are displayed
title, items name and count of points from "choosing game"
items are sorted on count from highest descending
for logged in user
documentation for all titles and corresponding items with counted points
sorted from newest to oldest
option to try choosing items again
option to delete particular title and its items
if errors occur -implemented in app.py - user is redirected to error page
error is displayed
button to go one page back to correct error
extended style of components
images used in the app as logo
- reset function to start chosing again