A full-stack web application that gives users positive daily tasks to improve mental, physical, and social wellbeing.
- Personalized welcome message
- 3 daily quests (Social, Health, Mindfulness)
- Quest completion tracking with XP rewards
- Current streak counter
- Progress visualization
- Social Quests: Connect with others through meaningful interactions
- Health Quests: Small steps toward better physical health
- Mindfulness Quests: Practice mindfulness, gratitude, and mental wellbeing
- Dynamic quest generation with reward points
- Quest completion tracking and streak management
- XP points and leveling system
- Streak counters with motivational feedback
- Chart.js visualizations for mood trends
- Quest category breakdown charts
- Achievement badges and milestones
- Post-quest reflection forms
- Sentiment analysis using TextBlob
- Mood tracking over time
- Personalized feedback based on reflections
- Auto-awarded badges for milestones:
- 5-day streak → "Motivation Master" 🔥
- 10-day streak → "Streak Champion" ⚡
- 50 XP → "Level 2 Explorer" ⭐
- 100 XP → "Quest Veteran" 🏆
- 10 quests completed → "Quest Veteran" 🎯
- 25 quests completed → "Quest Master" 👑
- Python Flask - Web framework
- Flask-Login - User authentication
- Flask-SQLAlchemy - Database ORM
- SQLite - Database
- TextBlob - Sentiment analysis
- WTForms - Form handling
- HTML5/CSS3 - Structure and styling
- Bootstrap 5 - UI framework
- Chart.js - Data visualization
- Font Awesome - Icons
- JavaScript - Interactive features
- Gunicorn - WSGI server
- Render.com - Hosting platform
Questr/
├── app.py # Main Flask application
├── models.py # Database models
├── requirements.txt # Python dependencies
├── Procfile # Deployment configuration
├── .env # Environment variables
├── static/
│ ├── css/
│ │ └── style.css # Custom styles
│ ├── js/
│ │ └── chart.js # Chart utilities
│ └── images/ # Static images
├── templates/
│ ├── base.html # Base template
│ ├── index.html # Landing page
│ ├── login.html # Login form
│ ├── register.html # Registration form
│ ├── dashboard.html # Main dashboard
│ ├── profile.html # User profile
│ └── reflection.html # Mood reflection form
└── README.md # This file
-
Clone the repository
git clone <repository-url> cd Questr
-
Create virtual environment
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Run the application
python app.py
-
Access the app Open your browser and navigate to
http://localhost:5000
- Create a new Web Service on Render
- Connect your GitHub repository
- Configure build settings:
- Build Command:
pip install -r requirements.txt - Start Command:
gunicorn app:app
- Build Command:
- Set environment variables:
FLASK_ENV=productionSECRET_KEY=your-secret-key
- Deploy!
id- Primary keyusername- Unique usernameemail- Unique email addresspassword_hash- Hashed passwordxp- Experience pointsstreak- Current streak countjoin_date- Account creation datelast_quest_date- Last quest completion date
id- Primary keytitle- Quest titlecategory- Quest category (Social/Health/Mindfulness)description- Quest descriptionreward_points- XP reward for completionis_active- Quest availability status
id- Primary keyuser_id- Foreign key to Usersquest_id- Foreign key to Questsdate_completed- Completion timestamp
id- Primary keyuser_id- Foreign key to Userstext- Reflection textsentiment_score- Calculated sentiment (-1 to 1)date- Reflection timestamp
id- Primary keytitle- Achievement titledescription- Achievement descriptionicon- Achievement icon/emojiunlock_condition- Condition to unlock
id- Primary keyuser_id- Foreign key to Usersachievement_id- Foreign key to Achievementsdate_earned- Achievement unlock date
GET /- Landing pageGET /login- Login formPOST /login- Process loginGET /register- Registration formPOST /register- Process registrationGET /logout- Logout userGET /dashboard- User dashboardGET /complete/<quest_id>- Complete questGET /reflection/<quest_id>- Reflection formPOST /reflection/<quest_id>- Submit reflectionGET /profile- User profileGET /api/mood-data- Mood data for charts
Questr follows a clean, modern design with:
- Pastel color scheme for a calming experience
- Rounded corners for friendly, approachable UI
- Gradient backgrounds for visual appeal
- Motivational microcopy throughout the interface
- Responsive design for all device sizes
- Smooth animations for enhanced user experience
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- AI-generated personalized quests using OpenAI API
- Weekly summary emails
- Social features (friend connections)
- Mobile app development
- Leaderboard
If you encounter any issues or have questions, please open an issue on GitHub or contact the development team.