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.1.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.1-py3-none-any.whl (371.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: medbook_medical_hub-0.2.1.tar.gz
  • Upload date:
  • Size: 363.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure

File hashes

Hashes for medbook_medical_hub-0.2.1.tar.gz
Algorithm Hash digest
SHA256 9d35afaba3befe1464e46ebb68fd71eb5fd1a8390d35bc44770e35826a146f3b
MD5 bca65416b6656e00ada3f9decf0552f6
BLAKE2b-256 1692895d4564ff72128bf3132d1789b6ffbfd84d5860b9090921732ba92c0b8c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: medbook_medical_hub-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 371.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure

File hashes

Hashes for medbook_medical_hub-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c51f312a7a72bc8d4cec4ef04c6c7325ff72e867738b499f0d35d3ac37ea165c
MD5 d14f46b765d6955878eae5f1f353a115
BLAKE2b-256 188564e55dac4d477083e5799922528537b4b78b7f7c7cae22e8895847805065

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