Finally finish your online courses.
Got a graveyard of unfinished courses? One Lesson Up gamifies learning to help you focus on one course at a time, earn coins for progress, and actually reach the finish line.
Sound familiar? These are the real reasons courses end up unfinished:
- No Focus — Enrolled in 5 courses, can't commit to one
- No Urgency — "I'll finish whenever" = never
- Invisible Progress — Completing lessons doesn't feel rewarding
- Brain Fried — After work exhaustion makes learning feel impossible
Simple gamification that actually works. Focus + Progress + Rewards = Finished courses.
- 🎯 One Course Focus — No enrolling in new courses until you finish your current one
- 🪙 Consistency Coins — Earn coins for daily progress, not weekend cramming
- 📝 Active Learning — Write summaries to cement knowledge and prevent forgetting
- 👥 Ninja Community — Learn alongside others and compete on rankings
- Pick One Course — Focus on completing one course before starting another
- Learn Daily — Complete lessons consistently to earn coins
- Write Summaries — Reflect on what you learned to cement knowledge
- Finish Strong — Get bonus coins for completing courses on time
Daily consistency beats weekend cramming — our math proves it:
- +1 coin for your first lesson each day
- +1 bonus for learning during peak times (5-8 AM, 10 AM-2 PM, 7-10 PM)
- +50% bonus for finishing courses on time
- +25% bonus even when finishing late
Example: Daily learner (15 min/day) gets 8 coins vs weekend learner (3 hours/day) gets 2 coins for the same 5-lesson course.
🐢 Show up daily, even for 15 minutes. The tortoise always wins.
Backend: Laravel 12 + PHP 8.3+ + SQLite/MySQL
Frontend: Vue.js 3 + TypeScript + Tailwind CSS + Inertia.js
Testing: Pest (PHP) + Vitest (JS) + Factory pattern
Prerequisites: PHP 8.3+, Composer, Node.js 18+, npm
# 1. Clone and setup
git clone https://github.com/edriso/one-lesson-up.git
cd one-lesson-up
composer install && npm install
# 2. Configure environment
cp .env.example .env
php artisan key:generate
# 3. Setup database
php artisan migrate:fresh --seed
# 4. Start development
php artisan serve
npm run dev # In another terminalVisit http://localhost:8000 and you're ready to go!
# Run tests
php artisan test
npm run test:frontend
# Code formatting
npm run formatcomposer install --optimize-autoloader --no-dev
npm run build
php artisan migrate --force
php artisan db:seed --class=TagSeeder
php artisan config:cache- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes and add tests
- Run tests:
php artisan test && npm run test:frontend - Submit a pull request
MIT License - see LICENSE for details.
Turn any course into a game. Level up your learning. 🥷