Levelr is a gamified productivity application that turns your goals into "Quests" and "Levels" using AI. It breaks down large objectives into actionable steps, rewarding you with XP and Coins as you progress.
- AI-Powered Quest Generation: Uses Google Gemini to break down goals into detailed roadmaps. 🤖
- Gamification: Earn XP, coins, and badges for completing tasks. 🎮
- Interactive Maps: Visualize your journey with a level-based map interface. 🗺️
- Detailed Task Views: Get checklists, pro-tips, and resources for every level. 📝
- Secure Authentication: User registration and login with MongoDB persistence. 🔒
Frontend:
- React (Vite)
- TypeScript
- Tailwind CSS (Pastel Theme)
- Framer Motion (Animations)
- React Router DOM
Backend:
- Node.js & Express
- MongoDB (Mongoose)
- Google Gemini API (AI generation)
- Node.js (v16+)
- MongoDB (Running locally or Atlas URI)
- Google Gemini API Key
-
Clone the repository
git clone https://github.com/yourusername/levelr.git cd levelr -
Install Dependencies
npm install
-
Environment Setup Create a
.env.localfile in the root directory:# AI Configuration GEMINI_API_KEY=your_gemini_api_key_here # Database Configuration <!-- MONGODB_URI=mongodb://localhost:27017/levelr_db --> # Or for Atlas: mongodb+srv://<user>:<password>@cluster.mongodb.net/test # Server Configuration PORT=5000
We use concurrently to run both the Client and Server with a single command:
npm run dev:full- Frontend:
http://localhost:5173 - Backend:
http://localhost:5000
If you prefer running terminals separately:
Terminal 1 (Server):
npm run serverTerminal 2 (Client):
npm run devlevelr/
├── components/ # React UI Components
│ ├── QuestView.tsx # Level Map
│ └── ...
├── server/ # Backend Code
│ ├── config/ # DB Connection
│ ├── models/ # Mongoose Schemas (User, Goal)
│ └── index.js # Express Entry Point
├── services/ # Frontend API Services
└── types.ts # TypeScript Interfaces
- Fork the repo
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Level Up Your Life! 🌟