Skip to main content

A desktop application that helps users manage medications and personal health records. Features include a monthly calendar with daily reminders, medical document storage, personalized pill risk monitoring, and personal profile editing

Project description

MedBook - Your Personal Medical Hub

MedBook is a privacy-first mobile app that brings all your health information together in one clean, organized space. No more folders stuffed with papers or photos scattered across devices - everything that matters to your health lives in MedBook, neatly structured and always at hand.

Here you will find:

  • Medication Schedule and Daily Reminder - create a monthly schedule for your medications;
  • Secure Document Vault - upload all your medical files;
  • Pill Risk Check - get a check of potential pill risks using your sex, age, and country of origin.

This repository contains the application code for the MedBook project. The business documentation lives in a separate repository: MedBook - business report


Contents


Technical Features

Built a full‑stack, multi‑page application with routed pages using Python and Flet front-end:

  • User authentication system using Firebase Authentication;
  • Interactive medication schedule using the cloud‑based Realtime Database;
  • Daily Reminder at 06:00: timetable triggers in‑app and push reminders;
  • Document Storage using Firebase Storage to upload and retrieval of lab results and prescriptions;
  • Pill Risk Check: call a third‑party medical API (OpenFDA API) to flag contraindications.

In the project Poetry is used to configure in such a way that:

  • a virtual environment is created automatically;
  • dependencies are declared in a pyproject.toml file, and installed in the aforementioned environment;
  • the project can be published on PyPI, with a single command.

Requirements

Python = ">=3.12,<4.0"
Poetry >= "2.0.0,<3.0.0"

dependencies = [
	"flet==0.25.2",
	"pyrebase4==4.8.0",
	"firebase-admin==6.6.0",
	"setuptools (>=80.9.0,<81.0.0)"
]
dev.dependencies = [
	pytest = "^8.1.0"
	coverage = "^7.4.0"
	pytest-cov = "^7.0.0"
]

Project Structure

.gitattributes
.gitignore
poetry.toml          # Poetry configuration
poetry.lock
pyproject.toml       # Project manifest
pytest.ini           # Pytest configuration
LICENSE

.github/             # CI workflows

artefact/                     # Folder with artefact code
├── assets/                   # Static files: images, icons, fonts, etc
├── service/                  # Backend-facing services (Firebase auth, Storage, DataBase, external APIs, etc)
├── ui/
│ └── gui                     # GUI implementation
│   ├── components/           # Reusable UI widgets (header, navigation bar)
│   └── _master page files_   # Page screens (LoginPage, SettingsPage, etc)
├── utils/                    # Helpers & utilities (validation, constants, formatting)
└── __init__.py

tests/               # Folder with tests
├── test_model.py
└── unit/            # Folder with unit-tests


Getting Started

Download the project

Choose one of the following:

  1. Option A — Download ZIP from GitHub
  2. Option B — Clone with Git:
git clone https://github.com/unibo-dtm-se-2324-MedBook/medbook-application-core.git
cd medbook-application-core

Install Dependencies

  1. Poetry will create a virtual environment and install all required packages:
poetry install
  1. Production-only install: no developer tools:
poetry install --only main 

Environment Variables (Secrets)

To run the application end to end, you need:

  • a Firebase project (create Realtime Database, Authentication, and Storage)
  • configure the required secrets as environment variables, such as Firebase admin key, Firebase key, Firebase service account.

Run the application

Use one of the options below:

  1. Run by module
poetry run python artefact/__init__.py
  1. Run via CLI command
poetry run medbook

Testing and Code Coverage

This project includes a comprehensive unit test suite with a current code coverage of ~81%. A textual coverage summary is printed automatically when running the standard test task:

poetry run pytest

To generate an HTML coverage report, use the next code line:

poetry run pytest --cov=artefact --cov-report=term-missing --cov-report=html

Available on PyPI and GitHub

This project’s source code is hosted on GitHub, and a packaged release is also published on PyPI.

  • PyPI (package): medbook-medical-hub
    Note: the PyPI source distribution excludes the test suite to keep the package lightweight.
  • GitHub (full source with tests): MedBook

License

This project is distributed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license.

  • You are free to use, modify, and share this code for non-commercial purposes only;
  • Attribution is required: Anastasiia Bakhmutova (2025);
  • Any commercial use without the author’s prior written permission is strictly prohibited.

Full license text

License: CC BY-NC 4.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

medbook_medical_hub-0.2.2.tar.gz (363.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

medbook_medical_hub-0.2.2-py3-none-any.whl (371.6 kB view details)

Uploaded Python 3

File details

Details for the file medbook_medical_hub-0.2.2.tar.gz.

File metadata

  • Download URL: medbook_medical_hub-0.2.2.tar.gz
  • Upload date:
  • Size: 363.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.3 CPython/3.12.13 Linux/6.17.0-1010-azure

File hashes

Hashes for medbook_medical_hub-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d50d767e9f889b6edbbadfeda1eba3f6f1357fe715c6cc90ca3d9517f355ea05
MD5 f8982662623e0b88f1ac78e2effae506
BLAKE2b-256 6c9aa1fac6ad25a2195c10fb84d15cf983244c6e36f1ca1e6b05163ad7dbb7fb

See more details on using hashes here.

File details

Details for the file medbook_medical_hub-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: medbook_medical_hub-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 371.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.3 CPython/3.12.13 Linux/6.17.0-1010-azure

File hashes

Hashes for medbook_medical_hub-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6ab0ab7175dcf61ff95a2208d36d9c8eeabee3f030b9d3bbc3d01b1c36123988
MD5 8a79212eb65b5c958b904ef2b178d104
BLAKE2b-256 8925af5881248699c77149150370558c37bbdfd4f5031dc43c19c59e8a580682

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page