Goal Crusher is a simple web application designed to help users set, track, and manage their personal or professional goals. The application provides the functionality to create new goals, view existing goals, update their status, and delete them if necessary. It is built with a Python backend and a JavaScript frontend to deliver a smooth user experience.
-
Add New Goals Users can create new goals by providing a title and description.
-
View Goals A list of all created goals can be viewed on the main page.
-
Update Goal Status Users can update the status of each goal to:
- Not Started
- In Progress
- Completed
- Delete Goals Users can delete goals to keep their list organized.
- Deployment: The app is deployed on Heroku.
- OpenAI API Integration: OpenAI’s API used for motivational quotes and goal suggestions.
- Notifications: Toastify used for user friendly notications of goal saving and deleting.
- Language: Python
- Framework: FastAPI
- Database: PostgreSQL
Language: JavaScript Framework: React Styling: CSS/SCSS.
- Clone the Repository
git clone https://github.com/taylormusolf/goal-crusher.git
cd goal-crusher
- Backend Setup
- Ensure you have Python installed.
- Install the required dependencies:
pip install -r requirements.txt
- Start the FastAPI server
uvicorn backend.src.app:app --reload
- Frontend Setup
- Navigate to the frontend directory and install the necessary dependencies:
cd frontend
npm install
npm run dev
- Database Setup
- Ensure your local PostgreSQL database is up and running.
- Create a .env file in the backend folder
- Set the DATABASE_URL in the env file to point to your PostgreSQL instance.
- Run migrations:
alembic upgrade head
- OpenAI API Setup To use the OpenAI API, you need to set your API key in the .env file:
OPENAI_API_KEY=your_api_key_here
- Deployment Instructions The application is deployed on Heroku.
- For Heroku deployment:
- Set up the required environment variables such as DATABASE_URL, OPENAI_API_KEY, and ENVIRONMENT.
- Add build and release commands to your Procfile for running migrations and seeding the database.
After starting the backend and frontend, open your browser and visit http://localhost:3000 (or your deployment URL). You can add, edit, delete, and track goals easily from the UI.
Reminder Notifications for upcoming or due goals. Social Sharing to share progress on social media. User Authentication to allow multiple users to track their goals independently.
This project is licensed under the MIT License.