{"id":20909469,"url":"https://github.com/jai0212/chore-hero","last_synced_at":"2026-04-11T15:40:22.122Z","repository":{"id":243212897,"uuid":"811781387","full_name":"Jai0212/Chore-Hero","owner":"Jai0212","description":"A fullstack web application to connect users with skilled professionals for services like cleaning, plumbing, etc. Created using the MERN Stack (MongoDB, Express, React, Node.js) with Vite","archived":false,"fork":false,"pushed_at":"2024-07-20T10:32:39.000Z","size":6364,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T22:13:33.340Z","etag":null,"topics":["axios","bcrypt","cors","css","dotenv","express","fullstack","html","javascript","jsonwebtoken","mern-stack","mongodb","mongoose","multer","nodejs","react","stripe","validator","vite"],"latest_commit_sha":null,"homepage":"https://chore-hero.netlify.app","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/Jai0212.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-06-07T09:37:09.000Z","updated_at":"2024-08-06T09:51:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"cb038510-0d14-49f0-9183-1347045d45b8","html_url":"https://github.com/Jai0212/Chore-Hero","commit_stats":null,"previous_names":["jai0212/chore-hero"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Jai0212/Chore-Hero","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jai0212%2FChore-Hero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jai0212%2FChore-Hero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jai0212%2FChore-Hero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jai0212%2FChore-Hero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jai0212","download_url":"https://codeload.github.com/Jai0212/Chore-Hero/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jai0212%2FChore-Hero/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28056801,"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-12-26T02:00:06.189Z","response_time":55,"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":["axios","bcrypt","cors","css","dotenv","express","fullstack","html","javascript","jsonwebtoken","mern-stack","mongodb","mongoose","multer","nodejs","react","stripe","validator","vite"],"created_at":"2024-11-18T14:11:20.392Z","updated_at":"2025-12-26T16:01:11.205Z","avatar_url":"https://github.com/Jai0212.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chore Hero\n\n\n[![Netlify Status](https://api.netlify.com/api/v1/badges/65c2db26-da31-4712-a791-6e8995f1b338/deploy-status)](https://app.netlify.com/sites/chore-hero/deploys)\n![License](https://img.shields.io/badge/license-Attribution--NonCommercial--NoDerivatives--4.0--International-red)\n\n\nChore Hero is a comprehensive full-stack web application designed to connect users with skilled professionals for a variety of services, including cleaning, plumbing, gardening, dog walking, and more. Whether it's a one-time task or a regular service, Chore Hero's talented heroes are here to get your chores done efficiently and reliably!\n\n**Chore Hero Website**: https://chore-hero.netlify.app/  \n**Chore Hero Admin Website**: https://chore-hero-admin.netlify.app/  \n\n\u003ca href=\"https://chore-hero.netlify.app/\"\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg width=\"180\" src=\"https://github.com/user-attachments/assets/7892c770-5d48-414c-b01e-ae953561b6b1\" style=\"border-radius: 15px; border: 4px solid #004d40;\"\u003e\n  \u003c/p\u003e\n\u003c/a\u003e\n\n\n## Overview\nChore Hero is built using the **MERN Stack** (MongoDB, Express, React, Node.js) with Vite for the frontend bundling.   \n\nThere is also an admin website to control website changes and allow our heroes to add services.\n\n\n## Features\n* **User-Friendly Service Ordering**: Easily order services from a user-friendly website to get your chores done.\n* **Admin Control Panel**: An admin website allows heroes to manage and add services, ensuring an up-to-date service offering.\n* **Fully Functioning Website**: Features include user sign-up, add to cart, and order placement functionalities.\n* **Secure Payment Processing**: Payment authentication is handled using Stripe, with verification through API calls.\n* **Robust Authentication System**: Secure user authentication and data protection using middleware and tokenization.\n* **Order Management**: Users can view their orders, with their cart and order data securely stored in the database.\n* **Responsive Design**: The website is optimized for use on laptops, phones and tablets, providing a seamless experience across all devices.\n\n\n## Technical Aspects\n* **Stack**: MERN (MongoDB, Express, React, Node.js)\n* **Frontend**: Developed using Vite and React.\n* **Backend**: Implemented with Node.js and Express.\n* **Languages**: HTML, CSS, and JavaScript.\n* **Database**: MongoDB stores login details, user carts, orders, services offered, and hero specializations.\n* **Payment Integration**: Stripe is used for secure payment processing.\n* **Hosting**: Frontend and admin websites are hosted on Netlify, and the backend is hosted on Render.\n\n\u003cbr\u003e \n\n### Packages/Dependencies:\n* **mongoose**: connects to MongoDB database\n* **axios**: generates api calls\n* **cors**: allows frontend-backend interaction\n* **express**: establishes routes, middleware and provides web-app framework\n* **bcrypt**: encrypts user details for security reasons\n* **dotenv**: manages environment variables securely such as API and secret keys\n* **jsonwebtoken**: creates tokens for user verification\n* **stripe**: integrates payment processing\n* **multer**: handles image uploads to the backend\n* **validator**: verifies email addresses\n\n\u003cimg width=\"250\" height=\"450\" src=\"https://github.com/Jai0212/Chore-Hero/assets/86296165/720fd4d6-9936-405c-96d3-9ac4b1d527b0\"\u003e\n\u003cimg width=\"250\" height=\"450\" src=\"https://github.com/Jai0212/Chore-Hero/assets/86296165/5bbf3241-4152-4a2b-bfee-101391b3309c\"\u003e\n\u003cimg width=\"600\" height=\"450\" src=\"https://github.com/Jai0212/Chore-Hero/assets/86296165/723e77d6-e194-4f68-87fd-76153fc9fa32\"\u003e\n\nThe frontend and admin website on a phone and tablet\n\n### Files\n- `frontend` - React/Vite main frontend code\n- `backend` - JavaScript, Node.js, Express.js, MongoDB backend\n- `admin` - React/Vite admin frontend code\n\n## Usage - Frontend\nTo experience Chore Hero, visit the website: https://chore-hero.netlify.app/\n\n### Getting Started:\n* **Initial Load Time**: Please note that the main services may take about 45 seconds to load initially as the backend activates.\n* **Sign Up**: Create an account by signing up on the website.\n* **Add Services to Cart**: Browse and select the services you need. You can describe the service and choose a convenient date and time for the task.\n* **View Our Heroes**: Scroll to the bottom of the website to see a list of our talented heroes. Click on their icons to view the services they specialize in.\n* **Checkout**: After adding the desired services to your cart, proceed to checkout and enter your details.\n* **Payment**: You will be redirected to a payment page. Use a Stripe dummy card, which you can find online, to complete the transaction. Your payment will be verified, and your order will be placed.\n\n\n### Important Notes\n* **No Actual Payment**: The payment process is simulated, so no actual transaction will occur.\n* **Secure Data**: Although the data will be stored in the database, all your sensitive information, including passwords and personal details, is encrypted and secured using tokenization.\n* **Placeholder Data**: The list of heroes on the website is placeholder data.\n\n\n## Usage - Admin\nYou can view the admin website from this link: https://chore-hero-admin.netlify.app/  \n\n* **Initial Load Time**: Just like the main website, the admin panel may take about 45 seconds to load initially as the backend activates.\n* **Select Hero**: At the top of the admin website, you'll find a dropdown menu. Choose the hero whose admin panel you want to access.\n* **Add Services**: You can add a service to the existing list of services from the \"Add All Services\" tab. This change will be immediately reflected on the main frontend services panel (you might have to reload the frontend website)\n* **Add Specializations**: In the \"Add Personal Service\" tab, you can specify service specializations for the selected hero. These specializations will appear on the frontend when you click on the hero's image.\n* **Edit Specializations**: The \"Edit Personal Services\" tab allows you to modify the service specializations for the selected hero.\n\nNOTE: For any changes made in the admin to be reflected on the frontend, you might have to reload the frontend once.\n\n\u003cimg width=\"900\" alt=\"chore-hero-cart\" src=\"https://github.com/Jai0212/Chore-Hero/assets/86296165/e08a2544-1eba-4b19-b455-aeaea1b593a6\"\u003e  \n\nThe cart page on a laptop\n\n## Sample Usage\nTo experience the immediate functionality of the website, you can log in to a test account: \n\n**Email**: test2@gmail.com  \n**Password**: test2password\n\nWithin this account, multiple orders have been placed, which you can view under \"My Orders\" (hover over the profile icon). Additionally, some services have been added to the cart for reference.\n\nYou can also proceed to place an order using the following sample card details:\n\n**Card Number**: 4000 0078 4000 0001  \n*For CVV, expiry date, and name/email, you can enter any arbitrary information.*\n\n\n## Installation and Requirements\nIf you wish to run the project locally to modify the project, follow these steps:\n\nChore Hero Frontend and Admin:  \n* App.jsx is the main file with primary styling in index.css\n* The various components of the webpage are under the src folder\n* Assets has all the images used\n* Components, context and pages has the various folders and files for each aspect of the webpage\n\nTo run the project locally, type the below in the terminal:\n```bash\n$ npm run dev\n```\n\nChore Hero Backend:\n* The main file is server.js to initialize everything\n* Uploads folder has all the images uploaded in the backend\n* The controllers, routes, models and middleware are in the respective folders\n\nTo run the backend locally, type the below in the terminal:\n```bash\n$ npm run server\n```\n\n**NOTE**: The Stripe authentication key, jsonwebtoken key and the MongoDB link are hidden for security purposes, if you wish to modify something, make sure to use your own secret keys\n\n\n## Acknowledgments\nI would like to thank Netlify and Render thanks to which I was able to host the frontend and backend of my project.\n\nAdditionally, the pictures for the various services and the header image were all publicly available on Google and thus were used from there.\n\n**NOTE**: No payment made will actually be fully processed. The heroes are placeholder data and the footer contact details are for show.\n\n*For suggestions, feedback, collaborations, or bug reports, please contact me via email: jj.joshijai@gmail.com*\n\nAuthor and Date  \nby Jai Joshi  \nUpdated on 20th July, 2024\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjai0212%2Fchore-hero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjai0212%2Fchore-hero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjai0212%2Fchore-hero/lists"}