GroveGoals
A website made to track your goals any type of goals.
Project Structure
├── README.md # This file
├── app.py # Flask backend (authentication, APIs, database)
├── requirements.txt # Python dependencies
├── Procfile # Deployment configuration (Heroku)
├── .env.example # Environment variables template
├── templates/ # Frontend HTML files
│ └── grovegoals.html # Main application page
└── .gitignore # Git ignore rules
Setup
Prerequisites
- Python 3.8+
- PostgreSQL (Neon.tech recommended for free tier)
Installation
Clone the repository
git clone https://github.com/GroveGoals/GroveGoals.git cd GroveGoalsCreate a virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activateInstall dependencies
pip install -r requirements.txtSetup environment variables
cp .env.example .env # Edit .env with your configurationInitialize the database
flask --app app init-dbRun the application
flask --app app run --debug
Features
✨ AI-Guided Goal Planning - Personalized roadmaps with milestones and tasks
🔐 Secure Authentication - Password hashing with bcrypt, CSRF protection
📊 Progress Tracking - XP system, streaks, achievements
🎯 Goal Templates - Pre-built roadmaps for popular goals
🤖 AI Coach - Powered by Gemini or Anthropic APIs
📚 Learning Resources - YouTube video search integration
Environment Variables
Create a .env file based on .env.example with:
SECRET_KEY- Flask secret key (generate a random string)DATABASE_URL- PostgreSQL connection stringFLASK_ENV- Set toproductionordevelopmentGEMINI_API_KEY- (Optional) Google Gemini API key for AI CoachANTHROPIC_API_KEY- (Optional) Anthropic API key for AI CoachYOUTUBE_API_KEY- (Optional) YouTube API key for video search
Security
- ✅ Password storage: bcrypt hashing
- ✅ HTTPS enforcement in production
- ✅ Session security: HttpOnly + Secure + SameSite cookies
- ✅ Rate limiting: 5 attempts/min on auth routes
- ✅ SQL injection protection: Parameterized queries
- ✅ CSRF protection: Flask-WTF CSRFProtect
- ✅ Password reset: Single-use, time-limited tokens
Deployment
The app is configured for Heroku with the provided Procfile. Ensure your environment variables are set in your hosting platform.
License
MIT License