{"id":26518217,"url":"https://github.com/melvintivane/fullstack-ecommerce-app","last_synced_at":"2026-04-09T19:54:11.032Z","repository":{"id":176548873,"uuid":"651681247","full_name":"melvintivane/fullstack-ecommerce-app","owner":"melvintivane","description":"A MERN stack e-commerce project that allows users to browse, add to cart, and purchase products online.","archived":false,"fork":false,"pushed_at":"2023-10-07T15:53:27.000Z","size":78,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-10-07T16:34:52.386Z","etag":null,"topics":["jwt","react-router-dom-v6","redux-toolkit","stripe"],"latest_commit_sha":null,"homepage":"https://kruppstore.netlify.app","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/melvintivane.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}},"created_at":"2023-06-09T19:59:26.000Z","updated_at":"2023-10-07T07:56:29.000Z","dependencies_parsed_at":"2023-07-13T12:43:19.208Z","dependency_job_id":null,"html_url":"https://github.com/melvintivane/fullstack-ecommerce-app","commit_stats":null,"previous_names":["mello47/fullstack-ecommerce-app","melvintivane/fullstack-ecommerce-app"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melvintivane%2Ffullstack-ecommerce-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melvintivane%2Ffullstack-ecommerce-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melvintivane%2Ffullstack-ecommerce-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melvintivane%2Ffullstack-ecommerce-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/melvintivane","download_url":"https://codeload.github.com/melvintivane/fullstack-ecommerce-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244770319,"owners_count":20507596,"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":["jwt","react-router-dom-v6","redux-toolkit","stripe"],"created_at":"2025-03-21T09:27:43.769Z","updated_at":"2025-12-30T19:29:52.959Z","avatar_url":"https://github.com/melvintivane.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fullstack Ecommerce App\n\nA MERN stack e-commerce project that allows users to browse, add to cart, and purchase products online. It incorporates features like user authentication, a shopping cart, and payment processing using Stripe. Redux is used for efficient state management, while JWT ensures secure user authentication.\n\n## Technologies Used\n\n- Node.js\n- Express.js\n- React\n- MongoDB\n\n## Installation\n\n1. Clone this repository using:\n```shell\n    git clone https://github.com/melvintivane/fullstack-ecommerce-app.git\n```    \n2. Install server dependencies (backend)\n```shell\n    cd api\n    npm install\n```\n\n3. Install client dependencies (frontend)\n```shell\n    cd client\n    npm install\n```\n\n## Configuration\n\n1. In the api folder, set your .env environment variables\n```shell\n    MONGO_URL = your_mongodb_uri\n    CRYPTOJS_SECRET = set_up_super_strong_secret_key \n    JWT_SECRET = set_up_super_strong_secret_key\n```\n\n2. In the client folder, set your .env environment variables\n```shell\n    REACT_APP_API_TOKEN = your_api_token\n    REACT_APP_API_URL = http://localhost:1337/api or your_api_url\n    STRIPE_KEY = your_secret_key\n```\n\n## Execution\n\n1. Start the server\n```shell\n    cd api\n    npm start\n```\n\n2. Start the client\n```shell\n    cd client\n    npm run dev\n```\n\n## Usage\n\n## Database\n\n### User Collection\n\nThe User schema represents users registered in the system. Data is stored as follows:\n\n- `name`: A string representing the user's name (required).\n- `lastname`: A string representing the user's last name (required).\n- `username`: A string representing the unique (required and unique) username.\n- `email`: A string representing the user's email address (required and unique).\n- `password`: A string representing the user's password (required).\n- `isAdmin`: A boolean indicating whether the user is an administrator (default: false).\n\n### Product Collection\nThe Product schema represents the products available in the store. Data is stored as follows:\n\n- `title`: A string that represents the product title (required and unique).\n- `description`: A string that describes the product (required).\n- `image1`: A string containing the path to the first image of the product (required).\n- `image2`: A string containing the path to the second product image (required).\n- `type`: A string describing the type of product (required).\n- `categories`: An array of strings containing categories associated with the product.\n- `tags`: An array of strings containing tags associated with the product.\n- `size`: An array of strings containing available sizes for the product (required).\n- `color`: An array of strings containing colors available for the product (required).\n- `oldPrice`: A number that represents the old price of the product (required).\n- `price`: A number that represents the current price of the product (required).\n- `inStock`: A boolean indicating whether the product is in stock (default: true).\n- `is_New`: A boolean indicating whether the product is new (default: false).\n- `quantity`: A number that represents the quantity available in stock (required).\n\n### Card Collection\n\nThe Cart schema represents a user's shopping cart. Data is stored as follows:\n\n- `userId`: A string that represents the ID of the user who owns the cart (required).\n- `product`: An array of objects that contains information about the products in the cart.\n- `productId`: A string representing the ID of the product in the cart.\n- `quantity`: A number that indicates the quantity of this product in the cart (default: 1).\n\n### Order Collection\n\nThe Order schema represents orders placed by users. Data is stored as follows:\n\n- `userId`: A string that represents the ID of the user who made the request (required).\n- `product`: An array of objects that contains information about the products in the order.\n- `productId`: A string representing the ID of the product in the order.\n- `quantity`: A number that indicates the quantity of this product in the order (default: 1).\n- `price`: A number that represents the price of the product at the time of ordering.\n- `amount`: A number that represents the total value of the order (required).\n- `address`: An object that contains information about the delivery address (required).\n- `status`: A string indicating the status of the order (default: \"pending\").\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmelvintivane%2Ffullstack-ecommerce-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmelvintivane%2Ffullstack-ecommerce-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmelvintivane%2Ffullstack-ecommerce-app/lists"}