Skip to content

LaDaniWapa/PillBox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo PillBox

Enhancing Medication with Technology

I built PillBox as my graduation project to solve a real headache: remembering to take meds 💊.
I created this app because I hate to:

  • Play detective with pill bottles 🔍
  • Miss doses because I forgot
  • Struggle with clunky interfaces or expensive apps

Below you'll find everything from tech specs to setup guides. Happy medicating! ✨

Table of Contents

  1. ✨ Features
  2. 🚀 Technologies
  3. Installation
  4. 💡 Challenges
  5. 📸 Screenshots
  6. 🎯 Conclusion

✨ Features

▲ Back to top

🔑 1. User Authentication

  • Secure registration using email addresses.

✖️ 2. Medication Tracking

  • Add, edit, delete, and track medications with details such as dosage, type, instructions, and stock levels.
  • Color coding system for quick visual identification of medications.

🕒️ 3. Scheduling System

  • Create detailed schedules with days/times and medication amounts (including "as needed").

🔔 4. Reminders

  • Set precise alarms for medication times.

🔍 5. Search & Filter

  • Search functionality by medication name or type with options to filter based on stock levels.
  • Low-stock indicators help users prioritize medications accordingly.

📝 Technologies

▲ Back to top

The app was built using:

  • Kotlin: Primary programming language for logic and interactivity.
  • Jetpack Compose: UI toolkit for building user interfaces.
  • Voyager: Navigation library for app navigation.
  • Koin: Dependency injection library to manage dependencies effectively.
  • Appwrite: Backend-as-a-service for user authentication and database management.
  • Git & GitHub: Version control system to manage code changes efficiently.

⚡ Installation Process

▲ Back to top

🧾 Official Release Channels

Via F-Droid (Not yet available)

  1. Enable F-Droid (if not already installed):

    • Download from f-droid.org
    • Allow installation from unknown sources
  2. Install PillBox:

    • Search for "PillBox" in F-Droid
    • Tap "Install"
    • Grant required permissions

📦 Building from Source

Option 1: Using Android Studio

# 1. Grab the code
git clone https://github.com/LaDaniWapa/PillBox
cd PillBox

# 2. Open in Android Studio
#    - File > Open > Select that shiny new PillBox folder
#    - Grab coffee while Gradle does its sync dance (3-5 min)

# 3. Set up your secret handshake with AppWrite (don't skip this!)
#    - Wait for Gradle sync to complete (may take several minutes)
#    - Create a file called "secrets.properties" in the root of the project
#    - DON'T FORGET to add it to your .gitignore file!
#
#    - Fill it with the info from your appwrite project dashboard
#         APPWRITE_ENDPOINT=<your_appwrite_endpoint>
#         APPWRITE_PROJECT_ID=<your_appwrite_project_id>
#         APPWRITE_DATABASE_ID=<your_appwrite_database_id>
#         APPWRITE_MEDICATIONS_ID=<your_appwrite_medications_collection_id>
#         APPWRITE_SCHEDULES_ID=<your_appwrite_schedules_collection_id>
#         APPWRITE_INTAKES_ID=<your_appwrite_schedules_collection_id>

# 4. Double-check your tools:
#    - JDK 11+ (File > Project Structure > SDK Location)
#    - Android SDK 29+ (SDK Manager)

# 5. Hit the big green 'Run' button and pick your device!

Option 2: Command Line with Gradle

# 1. Grab the code
git clone https://github.com/LaDaniWapa/PillBox
cd PillBox

# 2. Set up your secret handshake with AppWrite (don't skip this!)
echo "secrets.properties" >> .gitignore  # Keep your secrets safe!
cat > secrets.properties <<EOF
APPWRITE_ENDPOINT=<your_appwrite_endpoint>
APPWRITE_PROJECT_ID=<your_appwrite_project_id>
APPWRITE_DATABASE_ID=<your_appwrite_database_id>
APPWRITE_MEDICATIONS_ID=<your_appwrite_medications_collection_id>
APPWRITE_SCHEDULES_ID=<your_appwrite_schedules_collection_id>
APPWRITE_INTAKES_ID=<your_appwrite_schedules_collection_id>
EOF

# 3. Build the debug APK (for testing)
./gradlew assembleDebug
# Output: app/build/outputs/apk/debug/app-debug.apk

# 4. Want it on your phone right now?
./gradlew installDebug

# 5. For release builds (when you're feeling official)
./gradlew assembleRelease  # Requires signing config

💡 Challenges

▲ Back to top

  • Setting up AppWrite: Making everything work with your own server is quite complicated.
  • MVVM: Girl I was going crazy at first, but now I can't live without it, thanks to Koin for making things easier <3
  • Schedules: This CRUD was quite hard, I got lost several times, but my super nenas notebook is still my best friend.
  • Notification System: I had no idea how to code it, but after some tutorials I managed to.

📸 Screenshots & App Flow

▲ Back to top

🔐 Authentication

Login Screen
Login Screen
Registration Screen
Registration Screen

🏠 Core Features

Home Dashboard
Home Dashboard
Medication Storage
Medication Inventory

💊 Medication Management

Add Medication
Add New Medication
Edit Medication
Edit Medication

⏰ Scheduling System

Create Schedule
Create New Schedule
Edit Schedules
Manage Schedules

🔔 Notifications

Notification Example

Medication Reminder Notification

🎯 Wrapping It Up

▲ Back to top

PillBox is like having a personal meds assistant in your pocket! 💊📱 We've packed it with all the smart features you may need:

  • 🔔 Friendly pings - Tidy notifications to keep you on track
  • 🔍 Quick-find meds - Search works like magic when you're in a hurry
  • 🎨 Colorful organization - Because pills shouldn't be boring
  • 🌎 Works in English & Spanish — porque las pastillas no entienden de idiomas

Developed with 💖 for your health

About

Final Degree Project for multiplatform app development

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages