{"id":25874499,"url":"https://github.com/apfirebolt/mern_goal_setter","last_synced_at":"2026-04-09T12:01:44.454Z","repository":{"id":279474718,"uuid":"936776496","full_name":"Apfirebolt/mern_goal_setter","owner":"Apfirebolt","description":"This would be a full-stack application in MERN which would allow users to set and track goals","archived":false,"fork":false,"pushed_at":"2025-06-20T09:37:41.000Z","size":725,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-20T10:42:54.423Z","etag":null,"topics":["docker","docker-compose","express","goals-app","material-ui","mongodb","mongoose","nginx","nodejs","react"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Apfirebolt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null}},"created_at":"2025-02-21T17:04:32.000Z","updated_at":"2025-06-20T09:37:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"e06c55f2-bd40-4acd-847c-fc3db16fde62","html_url":"https://github.com/Apfirebolt/mern_goal_setter","commit_stats":null,"previous_names":["apfirebolt/mern_goal_setter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Apfirebolt/mern_goal_setter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Apfirebolt%2Fmern_goal_setter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Apfirebolt%2Fmern_goal_setter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Apfirebolt%2Fmern_goal_setter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Apfirebolt%2Fmern_goal_setter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Apfirebolt","download_url":"https://codeload.github.com/Apfirebolt/mern_goal_setter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Apfirebolt%2Fmern_goal_setter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272160241,"owners_count":24883779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-26T02:00:07.904Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docker","docker-compose","express","goals-app","material-ui","mongodb","mongoose","nginx","nodejs","react"],"created_at":"2025-03-02T09:28:09.333Z","updated_at":"2025-12-30T19:52:10.099Z","avatar_url":"https://github.com/Apfirebolt.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Goal setter application in MERN\n\n![Cover](screenshots/3.png)\n\n![Express](https://img.shields.io/badge/Express.js-404D59?style=for-the-badge)\n![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge\u0026logo=react\u0026logoColor=white)\n![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white)\n![Node](https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n![Nginx](https://img.shields.io/badge/Nginx-009639?style=for-the-badge\u0026logo=nginx\u0026logoColor=white)\n![Docker Compose](https://img.shields.io/badge/Docker_Compose-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n\n## Features\n\n- User authentication and authorization (Done)\n- Create, update, and delete goals (Done)\n- Set deadlines and reminders for goals\n- Track progress of goals\n- Categorize goals by priority or type (Done)\n- Receive notifications for upcoming deadlines\n- View goal history and achievements\n- Responsive design for mobile and desktop (Done)\n- Integration with calendar apps\n- Data encryption and security\n- User-friendly interface (Done)\n- Analytics and reporting on goal progress\n- Customizable goal templates\n- Support for multiple languages\n- Dark mode and light mode options\n\nThese are the suggested features a goal setting app should have. This application over a period of time would eventually contain some of these features.\n\n## Screenshots\n\nBelow are the screenshots to add goal and register page.\n\n![Cover](screenshots/1.png)\n![Cover](screenshots/2.png)\n\n\n## Deployment using Docker\n\n```\nversion: '3.8'\nservices:\n  express:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    container_name: express_goals\n    ports:\n      - 5000:5000\n    depends_on:\n      - mongo\n\n  mongo:\n    image: mongo\n    container_name: mongo_goals\n    restart: unless-stopped\n    volumes:\n      - ./mongo_data:/data/db\n    ports:\n      - '27017:27017'\n\n  nginx:\n    image: nginx\n    container_name: nginx_goals\n    restart: unless-stopped\n    ports:\n      - '80:80'\n    volumes:\n      - ./nginx/nginx.conf:/etc/nginx/nginx.conf\n    depends_on:\n      - express\n\nvolumes:\n  mongo_data:\n    external: true\n```\n\nThis uses Docker containers for deployment. We have containers for Nginx, the back-end and mongodb database. Before running the docker-compose command we create a front-end build using the command \nfrom inside the client folder.\n\n```\nnpm run build\n```\n\nWe use volumes for data persistence in our MongoDB database. When we remove the containers using docker-compose down and create those again using docker-compose up, we'd notice our database remains intact.\n\n```\ndocker-compose up\ndocker-compose down\n\ndocker-compose down --volumes --remove-orphans \u0026\u0026 docker-compose up --build\n```\n\nLet's breakdown some of the complex part of the previous code above.\n\n--volumes: This crucial flag tells Docker Compose to also remove the named volumes associated with your containers. This is important if you want to completely reset your data or if you've made changes to your volume configurations. Be careful! This will delete your data if it is stored in volumes.\n\n--remove-orphans: This option removes any containers that were created by a previous docker-compose up command but are no longer defined in your current docker-compose.yml. This is helpful for cleaning up old containers that might be lingering.\n\u0026\u0026\n\ndocker-compose up: This command starts and creates the containers defined in your docker-compose.yml file.\n--build: This flag tells Docker Compose to build or rebuild any images that are specified in your docker-compose.yml file's build section. This is essential when you've made changes to your Dockerfiles or application code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapfirebolt%2Fmern_goal_setter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapfirebolt%2Fmern_goal_setter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapfirebolt%2Fmern_goal_setter/lists"}