Find habits that genuinely increase your productivity

Overview

BiProductive

Codacy Badge Stargazers Issues MIT License

Description

This repository contains the application BiProductive, which analyzes the habits of the person, tests his productivity, and defines dependencies between habits and productivity. Each day user enters the actions they made today (sports activity, meditation, smoking, etc.) and tests their brain performance. Then the application computes the correlation between habits and user's performance, and makes personal recommendations.

1

How to deploy the application

  • Locally

    • You should have Docker and Docker Compose installed.

    • Go to the project folder.

    • Rename .env.example to .env and fill the SECRET_KEY environment variable. For example, you can use (https://djecrety.ir) to generate the secret key.

    • Put .env file to ./biproductive/biproductive directory.

    • Run docker-compose up --build.

    • An application will be launched at 0.0.0.0:8000 address.

  • Heroku

    • If you want to deploy this application on your own Heroku host, read HEROKU.MD.

Functionality of our application

  • You can register to the website, providing any unused username, email, and password. You can log in using his username and password.

  • After login at the home page you can see the dashboard with weekly statistics of habits usage and his brain activity during the productivity testing.

  • Also, on request, you can request from the system weekly report with analysis of his habits (in future we will add sending report by email each week).

  • You can add as many habits as you want for tracking them.

  • During the day or at the end of the day you can mark habits you completed and not completed (e.x. Swimming - Yes, Smoking - No) only once a day (no refilling can be done).

  • Once a day (preferably in the evening) you can test how well your brain works after the day by playing a memory game.

  • So, data about the brain activity after the day and statistics of habit usage could provide personal recommendations about habits (which habits increase brain activity, which not).

Main components of our application

We deployed our project or Heroku, so as a web server that handles client requests we used gunicorn.

We organized business logic of application into 4 main components/modules:

  • User habit tracker - django application that is responsible for tracking habits (user can start tracking his habit by adding it and each day at the special form mark the habit completed or not (e.x. did you read a book today or not).

  • Productivity testing tool - small django application with javascript game that aims to track everyday brain activity after completing (or not completing) habit activities.

  • Habit analyzer tool - ML application that calculates how well habits affects your brain.

  • Report generation tool - wraps data, received from habit analyzer, and prepares a small pdf report with charts & tables.

In the storage layer we have used 2 databased:

  • Habit history database, that stores user's tracking habits and their usage.
  • Productivity history database, that tracks user's everyday brain activity.

Dynamic view, describing main components of our application (static/dynamic view can be found in our artifact)

Stack of technologies

  • Django
  • PostgreSQL
  • JavaScript
  • HTML
  • Bootstrap

SOLID principles and design patterns

Here you can see a description of how we used SOLID principles and the information about the design patterns.

RUP Artifact

Here is the link to the RUP Artifact where you can find the list of stakeholders and their roles, functional and non-functional requirements planned features, and other design specifications.

Also, you can see the design development history here.

Contributing

We appreciate all contributions. If you are planning to contribute back bug-fixes, please do so without any further discussion.

If you plan to contribute new features, utility functions, or extensions to the core, please first open an issue and discuss the feature with us. Sending a PR without discussion might end up resulting in a rejected PR because we might be taking the core in a different direction than you might be aware of.

Check the CONTRIBUTING.MD to learn more about making a contribution to our project.

Used linters in our project

During the development of our project we have configured git pre-commit checks, defined in .pre-commit-config.yaml:

  • isort for sorting names of imported libraries
  • black - Python code formatter
  • flake8 - combination of various code refactor tools like pyflakes, pycodestyle, checks for code styles.

Code coverage

Code coverage of our web-application - 86%. The application was tested locally with python package - coverage. Generated report and instruction how to test are described in COVERAGE.md.

The BiProductive team

The original BiProductive code contributors can be found in AUTHORS.MD.

Special Thanks To

Rémy Beumier - developer of the memory game for productivity check

You might also like...
A practice program to find the LCM i.e Lowest Common Multiplication of two numbers using python without library.

Finding-LCM-using-python-from-scratch Here, I write a practice program to find the LCM i.e Lowest Common Multiplication of two numbers using python wi

PyPI package for scaffolding out code for decision tree models that can learn to find relationships between the attributes of an object.

Decision Tree Writer This package allows you to train a binary classification decision tree on a list of labeled dictionaries or class instances, and

Simplest way to find Appointments in Bürgeramt Berlin, Not over engineered.
Simplest way to find Appointments in Bürgeramt Berlin, Not over engineered.

Simplest way to find Appointments in Bürgeramt Berlin, Not over engineered. Der einfachste Weg, Termine im Bürgeramt Berlin zu finden, ohne viel Schnickschnack.

The goal of this program was to find the most common color in my living room.

The goal of this program was to find the most common color in my living room. I found a dataset online with colors names and their corr

Given tool find related trending keywords of input keyword

blog_generator Given tool find related trending keywords of input keyword (blog_related_to_keyword). Then cretes a mini blog. Currently its customised

Here You will Find CodeChef Challenge Solutions
Here You will Find CodeChef Challenge Solutions

Here You will Find CodeChef Challenge Solutions

A code ecosystem that helps to find the equate any formula.

A code ecosystem that helps to find the equate any formula. The good part here is that the code finds the formula needed and/or operates on a formula (performs algebra) on it to give you an answer.

Some Python scripts that fx(hash) users might find useful.

fx_hash_utils Some Python scripts that fx(hash) users might find useful. get_images This script downloads all the static images of the tokens generate

We want to check several batch of web URLs (1~100 K) and find the phishing website/URL among them.
We want to check several batch of web URLs (1~100 K) and find the phishing website/URL among them.

We want to check several batch of web URLs (1~100 K) and find the phishing website/URL among them. This module is designed to do the URL/web attestation by using the API from NUS-Phishperida-Project.

Releases(Gamma)
Owner
Rizvan Iskaliev
19 y. o. Machine Learning Engineer, Innopolis University
Rizvan Iskaliev
a pull switch (or BYO button) that gets you out of video calls, quick

zoomout a pull switch (or BYO button) that gets you out of video calls, quick. As seen on Twitter System compatibility Tested on macOS Catalina (10.15

Brian Moore 422 Dec 30, 2022
A napari plugin to inspect data within a cisTEM project

napari-cistem A plugin to inspect data within a cisTEM project This napari plugin was generated with Cookiecutter using with @napari's cookiecutter-na

Johannes Elferich 1 Nov 07, 2021
Library to emulate the Sneakers movie effect

py-sneakers Port to python of the libnms C library To recreate the famous data decryption effect shown in the 1992 film Sneakers. Install pip install

Nicolas Rebagliati 11 Aug 27, 2021
A Python version of Canvacord

A copy of canvacord made in python! Installation Run any of these commands in terminal: Mac / Linux pip install canvacord Windows python -m pip insta

10 Mar 28, 2022
Library for mocking AsyncIOMotorClient built on top of mongomock.

mongomock-motor Best effort mock for AsyncIOMotorClient (Database, Collection, e.t.c) built on top of mongomock library. Example / Showcase from mongo

Michael Kryukov 43 Jan 04, 2023
Expression interpreter written in Python

Calc Interpreter An interpreter modeled after a calculator implemented in Python 3. The program currently only supports basic mathematical expressions

1 Oct 17, 2021
【AI创造营】参赛作品

-AI-emmmm 【AI创造营】参赛作品 鬼畜小视频 AiStuido地址:https://aistudio.baidu.com/aistudio/projectdetail/1647685 BiliBili视频地址:https://www.bilibili.com/video/BV1Zv411b

107 Nov 09, 2022
Python Create Your Own Tool Series

Python Create Your Own Tool Series Hey there! This is an additional Github repository that contains the final product files for each video in my Youtu

Joe Helle 21 Dec 02, 2022
This repository provides a set of easy to understand and tested Python samples for using Acronis Cyber Platform API.

Base Acronis Cyber Platform API operations with Python !!! info Copyright © 2019-2021 Acronis International GmbH. This is distributed under MIT licens

Acronis International GmbH 3 Aug 11, 2022
March-madness - March Madness results 1985-2021

march-madness Results for all 2,268 NCAA Division I Men's Basketball Tournament games since the modern format was introduced in 1985. Includes years,

Darik Harter 2 Feb 26, 2022
A Python library for inspecting JVM class files (.class)

lawu Lawu is a human-friendly library for assembling, disassembling, and exploring JVM class files. It's highly suitable for automation tasks. Documen

Tyler Kennedy 45 Oct 23, 2022
Astroquery is an astropy affiliated package that contains a collection of tools to access online Astronomical data.

Astroquery is an astropy affiliated package that contains a collection of tools to access online Astronomical data.

The Astropy Project 631 Jan 05, 2023
This is where I learn machine learning

This is where I learn machine learning🤷‍ This means that this repo covers no specific topic of machine learning or a project - I work in here when I want to learn/try something

Wilhelm Berghammer 47 Nov 16, 2022
Scripts used in the RayStation medical radiation dosimetry treatment planning system

Med Phys Scripts These are scripts that I, the medical physics assistant at Cookeville Regional Medical Center, wrote for use in our radiation therapy

Kaley White 2 Oct 19, 2022
🤖🧭Creates google-like navigation menu using python-telegram-bot wrapper

python telegram bot menu pagination Makes a google style pagination line for a list of items. In other words it builds a menu for navigation if you ha

Sergey Smirnov 9 Nov 27, 2022
Participants of Bertelsmann Technology Scholarship created an awesome list of resources and they want to share it with the world, if you find illegal resources please report to us and we will remove.

Participants of Bertelsmann Technology Scholarship created an awesome list of resources and they want to share it with the world, if you find illegal

Wissem Marzouki 29 Nov 28, 2022
A refresher for PowerBI Desktop documents

PowerBI_Refresher-NPP Informació Per executar el programa s'ha de tenir instalat el python versio 3 o mes. Requeriments a requirements.txt. El fitxer

Nil Pujol 1 May 02, 2022
python for windows extensions

This is the readme for the Python for Win32 (pywin32) extensions source code. See CHANGES.txt for recent changes. 'setup.py' is a standard distutils

27 Dec 08, 2022
Built with Python programming language and QT library and Guess the number in three easy, medium and hard rolls

password-generator Built with Python programming language and QT library and Guess the number in three easy, medium and hard rolls Password generator

Amir Hussein Sharifnezhad 3 Oct 09, 2021
a simple thing that i made for fun :trollface:

we-do-a-little-trolling about a simple thing that i made for fun. requirements and instructions first you need to install obs , then start the virtual

ranon rat 6 Jul 15, 2022