Aspire is a comprehensive goal-tracking web application built on Goal-Setting Theory (GST) principles. Unlike conventional to-do applications that simply track tasks, Aspire connects daily actions to long-term objectives, helping users understand how their incremental efforts contribute to broader ambitions.
- Goal Hierarchy: Create and manage long-term goals, short-term goals, and milestones
- Task Management: Track daily tasks and connect them to your broader goals
- Analytics Dashboard: Visualize your progress with charts and statistics
- Goal Network Visualization: See how your goals and tasks interconnect
- Data Import/Export: Backup and transfer your goal data between systems
- Responsive Design: Works on both desktop and mobile browsers
- Backend: Python with Flask framework
- Database: SQLAlchemy ORM with SQLite (configurable for other databases)
- Frontend: Bootstrap, Chart.js, JavaScript
- Authentication: Flask-Login
- Form Handling: WTForms
- Testing: Pytest
- Python 3.8 or higher
- pip (Python package manager)
- Git (optional, for cloning the repository)
git clone https://github.com/3L0C/Aspire
cd aspireOr download and extract the ZIP file from the project's releases page.
python -m venv venvOn Windows:
venv\Scripts\activateOn macOS and Linux:
source venv/bin/activatepip install -r requirements.txtCreate a .env file in the root directory with the following content:
SECRET_KEY=your-secure-random-key-change-this-in-production
DATABASE_URL=sqlite:///aspire.db
You can generate a secure random key using Python:
python -c "import secrets; print(secrets.token_hex(16))"python run.pyThe application will be available at http://127.0.0.1:5000/.
The first user you register will be automatically created. You can register at http://127.0.0.1:5000/register.
For production environments, consider the following:
Update the DATABASE_URL in your .env file:
# PostgreSQL
DATABASE_URL=postgresql://username:password@localhost/aspire
# MySQL
DATABASE_URL=mysql://username:password@localhost/aspire
Install Gunicorn:
pip install gunicornRun with Gunicorn:
gunicorn 'app:create_app()'Here's a basic Nginx configuration:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}aspire/
├── app/ # Main application package
│ ├── __init__.py # Application factory
│ ├── analytics/ # Analytics processing
│ ├── data/ # Data models
│ ├── presentation/ # Route handlers and views
│ ├── services/ # Application services
│ ├── static/ # Static files (CSS, JS)
│ └── templates/ # Jinja2 templates
├── tests/ # Test suite
├── .env # Environment variables (create this)
├── run.py # Application entry point
└── requirements.txt # Dependencies
- Register/Login: Create an account or log in to an existing one
- Create Goals: Start by defining your long-term goals
- Add Tasks: Create daily tasks and link them to your goals
- Track Progress: As you complete tasks, your goal progress updates automatically
- Analyze Performance: Use the analytics dashboard to track your achievements
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Goal-Setting Theory by Edwin Locke and Gary Latham
- Flask and its extensions
- Bootstrap for responsive design
- Chart.js for data visualization