{"id":15157882,"url":"https://github.com/taylormusolf/goalcrusher","last_synced_at":"2026-01-20T07:02:22.911Z","repository":{"id":256671771,"uuid":"854901704","full_name":"taylormusolf/GoalCrusher","owner":"taylormusolf","description":"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.","archived":false,"fork":false,"pushed_at":"2024-09-11T23:59:18.000Z","size":8080,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T14:47:39.120Z","etag":null,"topics":["alembic","fastapi","openai-api","postgresql","productivity","python","react","sqlalchemy"],"latest_commit_sha":null,"homepage":"https://goal-crusher-app-d59414deaeb3.herokuapp.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taylormusolf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-10T00:44:24.000Z","updated_at":"2024-09-12T00:22:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"e3b6543f-8638-4f7e-b378-934037957015","html_url":"https://github.com/taylormusolf/GoalCrusher","commit_stats":{"total_commits":32,"total_committers":1,"mean_commits":32.0,"dds":0.0,"last_synced_commit":"518ec2ea66d1fd39ce59d8578635416d5426f9f3"},"previous_names":["taylormusolf/goalcrusher"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/taylormusolf/GoalCrusher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylormusolf%2FGoalCrusher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylormusolf%2FGoalCrusher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylormusolf%2FGoalCrusher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylormusolf%2FGoalCrusher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taylormusolf","download_url":"https://codeload.github.com/taylormusolf/GoalCrusher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylormusolf%2FGoalCrusher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28597985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alembic","fastapi","openai-api","postgresql","productivity","python","react","sqlalchemy"],"created_at":"2024-09-26T20:20:21.450Z","updated_at":"2026-01-20T07:02:22.896Z","avatar_url":"https://github.com/taylormusolf.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![goalcrusher](https://github.com/user-attachments/assets/2b28b353-6dbe-40ab-a3d9-5d7fd7d0262b)\n\n### Overview\nGoal 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.\n\n### Features\n1. Add New Goals\nUsers can create new goals by providing a title and description.\n\n2. View Goals\nA list of all created goals can be viewed on the main page.\n\n3. Update Goal Status\nUsers can update the status of each goal to:\n- Not Started\n- In Progress\n- Completed\n\n4. Delete Goals\nUsers can delete goals to keep their list organized.\n\n#### Bonus Features\n- Deployment: The app is deployed on [Heroku](https://goal-crusher-app-d59414deaeb3.herokuapp.com/).\n- OpenAI API Integration: OpenAI’s API used for motivational quotes and goal suggestions.\n- Notifications: Toastify used for user friendly notications of goal saving and deleting.\n\n### Tech Stack\n#### Backend\n- Language: Python\n- Framework: FastAPI\n- Database: PostgreSQL\n#### Frontend\nLanguage: JavaScript\nFramework: React\nStyling: CSS/SCSS.\n\n### Setup Instructions\n1. Clone the Repository\n\n```bash\ngit clone https://github.com/taylormusolf/goal-crusher.git\ncd goal-crusher\n```\n2. Backend Setup\n- Ensure you have Python installed.\n- Install the required dependencies:\n``` bash\npip install -r requirements.txt\n```\n- Start the FastAPI server\n```bash\nuvicorn backend.src.app:app --reload\n```\n3. Frontend Setup\n- Navigate to the frontend directory and install the necessary dependencies:\n```bash\ncd frontend\nnpm install\nnpm run dev\n```\n4. Database Setup\n- Ensure your local PostgreSQL database is up and running.\n- Create a .env file in the backend folder\n- Set the DATABASE_URL in the env file to point to your PostgreSQL instance.\n- Run migrations:\n```bash\nalembic upgrade head\n```\n5. OpenAI API Setup\nTo use the OpenAI API, you need to set your API key in the .env file:\n```shell\nOPENAI_API_KEY=your_api_key_here\n```\n6. Deployment Instructions\nThe application is deployed on Heroku.\n- For Heroku deployment:\n1. Set up the required environment variables such as DATABASE_URL, OPENAI_API_KEY, and ENVIRONMENT.\n2. Add build and release commands to your Procfile for running migrations and seeding the database.\n3. \n### Usage\nAfter starting the backend and frontend, open your browser and visit http://localhost:3000 (or your deployment URL).\nYou can add, edit, delete, and track goals easily from the UI.\n\n### Future Enhancements\nReminder Notifications for upcoming or due goals.\nSocial Sharing to share progress on social media.\nUser Authentication to allow multiple users to track their goals independently.\n\n### Screenshots\n![goals](https://github.com/user-attachments/assets/4bc82a17-aab8-4e60-a818-0905721c8aac)\n![suggestions](https://github.com/user-attachments/assets/08472d1a-aadf-49e3-966f-bc238d4e2ad2)\n![notificationsPNG](https://github.com/user-attachments/assets/51259b23-9da6-4b73-9fc3-724f856cf8f0)\n\n\n### License\nThis project is licensed under the MIT License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaylormusolf%2Fgoalcrusher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaylormusolf%2Fgoalcrusher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaylormusolf%2Fgoalcrusher/lists"}