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