A discipline-first mobile application engineered to transform your goals into achievements through systematic habit building, structured workout tracking, and data-driven personal development.
Quartz is built on the principle that lasting change comes from disciplined, consistent action. Every feature is intentionally designed to:
- Reinforce accountability
- Build sustainable habits
- Track measurable progress
- Drive systematic improvement
STRICTLY NON-COMMERCIAL
Quartz is protected under the Quartz License v1.1 with strict usage terms:
- ✅ Allowed: educational purposes.
- ❌ Strictly Prohibited: Any commercial use, including but not limited to:
- Selling or licensing the software
- Using in revenue-generating products/services
- Deployment in business environments
- Distribution without explicit permission
Copyright © 2025 CHAILLOU ROBIN
All rights reserved. Any unauthorized commercial use will result in immediate legal action.
For commercial licensing inquiries:
Contact: robinchaillou4@gmail.com
While contributions are welcome, this is a carefully crafted project with specific goals and standards. All submissions are manually reviewed to ensure they align with:
- Clean, maintainable code
- Intentional, focused design
- Ethical user engagement
- Project's core philosophy
Note: I reserve the right to reject any contribution that doesn't align with the project's vision or goals.
This project uses Bun as its package manager.
git clone https://github.com/desboisGIT/quartz/
cd quartz
bun installbun expo startThe Add Exercise popup is mounted once at the app root (App.tsx) and is controlled via a global zustand store useAddExercicePopUpStore (src/store/addExercicePopUpStore.ts).
Store API:
const open = useAddExercicePopUpStore(s => s.open);
const close = useAddExercicePopUpStore(s => s.close);
const toggle = useAddExercicePopUpStore(s => s.toggle);
To open the popup from anywhere (e.g. a footer button):
const open = useAddExercicePopUpStore(s => s.open);
<Button title="Add Exercises" onPress={open} />
Search behavior:
- Type in the search field to fuzzy match over exercise name, primary & secondary muscles, equipment, and category.
- Empty query shows an initial sample (first 50) for quick picking.
- Current implementation uses a lightweight custom scorer (can be swapped with fuse.js if needed for better ranking / typo tolerance).
Next enhancements you can add:
- Persist most recently used exercises.
- Multi-select and bulk add to current workout.
- Debounced async loading if exercises list grows very large.
Any questions ?
- Email: robinchaillou4@gmail.com