{"id":20690266,"url":"https://github.com/iam-abin/gadgetplus","last_synced_at":"2025-04-22T16:55:43.393Z","repository":{"id":156904825,"uuid":"625265304","full_name":"iam-abin/GadgetPlus","owner":"iam-abin","description":"An e-commerce platform for selling gadgets 📱 offering a diverse range of products, secure transactions 💳, and seamless user experience.","archived":false,"fork":false,"pushed_at":"2024-05-09T03:16:22.000Z","size":106553,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-09T04:27:33.079Z","etag":null,"topics":["docker","ecommerce","ecommerce-application","ejs","express","mongodb","mongoose","mvc-architecture","nodejs"],"latest_commit_sha":null,"homepage":"","language":"CSS","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/iam-abin.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":"2023-04-08T15:20:21.000Z","updated_at":"2024-05-30T06:23:01.721Z","dependencies_parsed_at":"2024-05-30T06:33:04.701Z","dependency_job_id":null,"html_url":"https://github.com/iam-abin/GadgetPlus","commit_stats":null,"previous_names":["iam-abin/gadgetplus","abin273/gadgetplus"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iam-abin%2FGadgetPlus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iam-abin%2FGadgetPlus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iam-abin%2FGadgetPlus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iam-abin%2FGadgetPlus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iam-abin","download_url":"https://codeload.github.com/iam-abin/GadgetPlus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224979004,"owners_count":17401803,"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","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","ecommerce","ecommerce-application","ejs","express","mongodb","mongoose","mvc-architecture","nodejs"],"created_at":"2024-11-16T23:12:27.263Z","updated_at":"2024-11-16T23:12:27.888Z","avatar_url":"https://github.com/iam-abin.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GadgetPlus\nGadgetPlus is an e-commerce application. It allows users to browse and purchase gadgets online.\n\n## Technologies Used\n\n- Node.js\n- Express.js\n- MongoDB\n- EJS, HTML5, CSS3\n\n---\n### Images\n![Screenshot from 2024-07-10 09-55-21](https://github.com/iam-abin/GadgetPlus/assets/112235416/234725d1-a5ad-4345-81c0-68b22a1f9bd0)\n\n![Screenshot from 2024-07-10 09-56-56](https://github.com/iam-abin/GadgetPlus/assets/112235416/84af0178-a1fa-49a8-9c42-b76c688971be)\n\n![Screenshot from 2024-07-10 09-55-47](https://github.com/iam-abin/GadgetPlus/assets/112235416/35918b51-d529-4499-a6e4-f957fe486e20)\n\n\n---\n\n### User-Facing Features\n\n- **User Authentication**: Create user accounts, log in, and manage personal information securely.\n- **Product Search**: Utilize the search functionality to quickly locate specific products by name, keywords, or attributes.\n- **Product Filters**: Narrow down product results using filters such as product category, price range.\n- **Product List**: Explore a vast catalog of products, making it easy to find desired items.\n- **Product Zoom**: Utilize the magic zoom function to get a closer look at product images.\n- **Shopping Cart**: Add products to the shopping cart for easy management and seamless checkout.\n- **Wishlist**: Save desired products to a wishlist for future reference or purchase.\n- **Mobile OTP Login**: Verify user mobile numbers using OTP to login.\n- **Payment Methods**: Choose from various payment methods, including Razor Pay,wallet and cash on delivery.\n- **Return and Cancel**: Easily initiate returns or cancel orders as per the return policy.\n- **Coupon Code**: Apply coupon codes for discounts during checkout.\n- **Address Management**: Add, edit, and delete user addresses for accurate and convenient delivery.\n- **Profile Management**: Edit merchant profile information and upload profile images.\n- **Order Management**: View and manage orders, including different order statuses such as pending, processing, shipped, outForDelivery,delivered, candelPending, canceled, etc.\n- **Invoice download**: Generate invoid for delivered products and can download them in PDF format.\n\n\n### Admin-Facing Features\n\n- **Admin Authentication**: To Authenticate admins for added security. Admin login and logout.\n- **User Management**: Handle user accounts, including blocking, unblocking, and managing user data.\n- **Product Management**: Handle Products, including adding, editing, blocking, and managing product data.\n- **Coupon Management**: Add, edit, delete, and update coupon codes for discounts.\n- **Category Management**: Manage categories such as for each products, including adding, editing, and deleting categories.\n- **Sales Reports**: Generate sales reports for order on a daily, weekly, monthly, and yearly basis and download them in CSV or PDF format.\n- **Dashboard**: Display statistics of sales such as profit, products etc., with graphs for monthly, daily insights.\n\n---\n\n\n### Prerequisites\n\nMake sure you have the following installed on your system:\n\n-   Node.js: [Download and install Node.js](https://nodejs.org/)\n\n## Setup\n\n1. Clone the repository\n\n```\ngit clone https://github.com/iam-abin/GadgetPlus.git\n```\n\n2. Navigate to the project directory\n\n    ```\n    cd GadgetPlus\n    ```\n\n3. Install the dependencies\n\n   ```\n   npm install \n   ```\n\n4. Configure the environment variables. Rename the `.env.example` file to `.env` and update the necessary variables with your specific configurations.\n\n5. Start the application\n\n```\nnpm start\n```\n\n6. Open your browser and navigate to `http://localhost:3000` to access gadgetPlus.\n\n---\n\n### Docker compose commands\n\n- To build images and run services,\nIn the root directory run \n\n```\ndocker-compose up --build\n```\n\n- To access the service1, enter the following in the browser or postman\n\n```\nhttp://localhost:3001/\n```\n\n### Docker commands\n\n- build an image\n\n```\ndocker build -t image-name .\n```\n\n- List all local Docker images\n```\ndocker images\n```\n\n- To run a docker image to crate a container\n```\ndocker run image_name\n```\n\n- To run a docker image to crate a container in  detached mode (in the background).\n```\ndocker run -d image_name\n```\n\n- To do port mapping and runnig container (To access application running inside container port 8080 from \n our local machine port 5000. By default app inside container cannot talk with outside world)\n\n```\ndocker run -p 5000:8080 image-name\n```\nor\n```\ndocker run -p 5000:8080 -d image-name\n```\n\n-  Stop a running container\n```\ndocker stop container_name\n```\n\n- List all running containers\n```\ndocker ps\n```\n- To see all the containers(even the stopped containers)\n```\ndocker ps -a\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiam-abin%2Fgadgetplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiam-abin%2Fgadgetplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiam-abin%2Fgadgetplus/lists"}