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! ✨
- Secure registration using email addresses.
- 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.
- Create detailed schedules with days/times and medication amounts (including "as needed").
- Set precise alarms for medication times.
- Search functionality by medication name or type with options to filter based on stock levels.
- Low-stock indicators help users prioritize medications accordingly.
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.
-
Enable F-Droid (if not already installed):
- Download from f-droid.org
- Allow installation from unknown sources
-
Install PillBox:
- Search for "PillBox" in F-Droid
- Tap "Install"
- Grant required permissions
# 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!# 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- 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.
Login Screen |
Registration Screen |
Home Dashboard |
Medication Inventory |
Add New Medication |
Edit Medication |
Create New Schedule |
Manage Schedules |
Medication Reminder Notification
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







