{"id":24862634,"url":"https://github.com/mubasshir14/car-store-backend","last_synced_at":"2026-04-12T01:35:18.122Z","repository":{"id":274675219,"uuid":"923408691","full_name":"Mubasshir14/car-store-backend","owner":"Mubasshir14","description":"A professional and highly efficient backend system designed for seamless management of a Car Store. Built with Express and TypeScript, this application is seamlessly integrated with MongoDB via Mongoose, ensuring robust data management and consistency. With comprehensive schema validation and a well-structured framework.","archived":false,"fork":false,"pushed_at":"2025-01-29T05:43:44.000Z","size":101,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T09:50:53.556Z","etag":null,"topics":["cookie-parser","expressjs","jwt","mongodb","mongoose","nodejs","typescript","zod-validation"],"latest_commit_sha":null,"homepage":"https://car-store-backend-red.vercel.app","language":"TypeScript","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/Mubasshir14.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-28T07:24:59.000Z","updated_at":"2025-07-04T12:24:55.000Z","dependencies_parsed_at":"2025-09-13T17:45:51.676Z","dependency_job_id":null,"html_url":"https://github.com/Mubasshir14/car-store-backend","commit_stats":null,"previous_names":["mubasshir14/car-store-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Mubasshir14/car-store-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mubasshir14%2Fcar-store-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mubasshir14%2Fcar-store-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mubasshir14%2Fcar-store-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mubasshir14%2Fcar-store-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mubasshir14","download_url":"https://codeload.github.com/Mubasshir14/car-store-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mubasshir14%2Fcar-store-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004062,"owners_count":26083669,"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-10-10T02:00:06.843Z","response_time":62,"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":["cookie-parser","expressjs","jwt","mongodb","mongoose","nodejs","typescript","zod-validation"],"created_at":"2025-01-31T22:59:19.875Z","updated_at":"2025-10-10T14:02:52.197Z","avatar_url":"https://github.com/Mubasshir14.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Car Store Backend\n\nCheck out our [Live Link](https://car-store-backend-red.vercel.app) \n\n\n## Description\n\nA professional and highly efficient backend system designed for seamless management of a Car Store. Built with Express and TypeScript, this application is seamlessly integrated with MongoDB via Mongoose, ensuring robust data management and consistency. With comprehensive schema validation and a well-structured framework, it delivers reliability, scalability, and performance for handling all Car Store operations effortlessly.\n\n## Features\n\n-**TypeScript** for strong typing and enhanced developer experience.\n\n-**Express.js** for creating the server and APIs.\n\n-**MongoDB** for database management using Mongoose.\n\n-**Environment Variable** management with `dotenv`.\n\n-**Linting and Formatting** with ESLint and Prettier.\n\n-**ShurjoPay** for payment integration.\n\n-Development server with ts-node-dev for live reload.\n\n-Modular architecture for scalability.\n\n## Authentication Overview\n-  JWT-based authentication is used to secure user access. An access token is issued for short-term use to access protected resources, while a refresh token allows the user to obtain a new access token without re-login once it expires. The refresh token is securely stored and can be used to refresh the access token as needed.\n\n## Prerequisites\n\nMake sure you have the following installed:\n\n- **Node.js** (version 16 or above)\n- **npm** or **yarn**\n- **MongoDB instance** (local or cloud-based)\n\n## Installation\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd \u003crepository-folder\u003e\n   ```\n\n2. **Install dependencies:**\n\n   ```bash\n   npm install\n   ```\n\n3. **Create a `.env` file** in the root directory and configure your environment variables:\n   ```env\n   PORT=3000\n   DATABASE_URL= your-mongodb-uri\n   NODE_ENV=development\n   BCRYPT_SALT_ROUND= Any Number\n   JWT_ACCESS_SECRET=\n   JWT_REFRESH_SECRET=\n   JWT_ACCESS_EXPIRES_IN=10d\n   JWT_REFRESH_EXPIRES_IN=365d\n   RESET_PASSWORD_UI_LINK=http://localhost:5000\n   IMAGEBB_API_KEY=\n   SP_ENDPOINT=https://sandbox.shurjopayment.com\n   SP_USERNAME=sp_sandbox\n   SP_PASSWORD=\n   SP_PREFIX=SP\n   SP_RETURN_URL=http://localhost:5173/verification\n\n   ```\n\n## Scripts\n\n- **Start Development Server:**\n\n  ```bash\n  npm run start:dev\n  ```\n\n- **Build for Production:**\n\n  ```bash\n  npm run build\n  ```\n\n- **Start Production Server:**\n\n  ```bash\n  npm run start:prod\n  ```\n\n- **Lint Code:**\n\n  ```bash\n  npm run lint\n  ```\n\n- **Fix Lint Issues:**\n\n  ```bash\n  npm run lint:fix\n  ```\n\n- **Format Code with Prettier:**\n\n  ```bash\n  npm run prettier\n  ```\n\n- **Fix Formatting Issues:**\n  ```bash\n  npm run prettier:fix\n  ```\n\n## Folder Structure\n\n```\ncar-store-backend/\n├── src/\n│   ├── app/\n│   │   ├── builder/\n│   │   │   └── QueryBuilder.ts\n│   │   ├── config/\n│   │   │   └── index.ts\n│   │   ├── errors/\n│   │   │   ├── AppError.ts\n│   │   │   ├── handleZodError.ts\n│   │   │   └── handleCastError.ts\n│   │   ├── interface/\n│   │   │   ├── events.ts\n│   │   │   └── index.d.ts\n│   │   ├── middlewares/\n│   │   │   ├── auth.ts\n│   │   │   └── globalErrorHandler.ts\n│   │   ├── route/\n│   │   │   └── index.ts\n│   │   ├── utils/\n│   │   │   ├── CatchAsync.ts\n│   │   │   └── sendResponse.ts\n│   ├── module/\n│   │   ├── Car/\n│   │   │   ├── controller.ts\n│   │   │   ├── interface.ts\n│   │   │   ├── model.ts\n│   │   │   ├── route.ts\n│   │   │   ├── validation.ts\n│   │   │   └── service.ts\n│   │   ├── Auth/\n│   │   │   ├── controller.ts\n│   │   │   ├── interface.ts\n│   │   │   ├── model.ts\n│   │   │   ├── route.ts\n│   │   │   ├── validation.ts\n│   │   │   └── service.ts\n│   │   ├── Cart/\n│   │   │   ├── controller.ts\n│   │   │   ├── interface.ts\n│   │   │   ├── model.ts\n│   │   │   ├── route.ts\n│   │   │   ├── validation.ts\n│   │   │   └── service.ts\n│   │   ├── Order/\n│   │   │   ├── controller.ts\n│   │   │   ├── interface.ts\n│   │   │   ├── model.ts\n│   │   │   ├── route.ts\n│   │   │   ├── validation.ts\n│   │   │   └── service.ts\n│   │   ├── Review/\n│   │   │   ├── controller.ts\n│   │   │   ├── interface.ts\n│   │   │   ├── model.ts\n│   │   │   ├── route.ts\n│   │   │   ├── validation.ts\n│   │   │   └── service.ts\n│   │   ├── User/\n│   │   │   ├── interface.ts\n│   │   │   ├── model.ts\n│   │   │   └── validation.ts\n│   ├── app.ts\n│   ├── server.ts\n├── dist/                   # Compiled JavaScript files\n├── .env                    # Environment variables\n├── .eslintrc.config.mjs            # ESLint configuration\n├── .prettierrc             # Prettier configuration\n├── package.json            # Project dependencies and scripts\n├── tsconfig.json           # TypeScript configuration\n└── README.md               # Project documentation\n```\n\n\n## Dependencies\n\n### Production:\n\n- `bcrypt`: Library for hashing passwords\n- `cookie-parser`: Parse cookies for incoming requests\n- `cors`: Enable Cross-Origin Resource Sharing\n- `dotenv`: Load environment variables from `.env` file\n- `express`: Web framework for building REST APIs\n- `http-status`: Manage and use HTTP status codes\n- `jsonwebtoken`: Generate and verify JSON Web Tokens (JWT)\n- `lint-staged`: Run linters on staged Git files\n- `mongoose`: MongoDB object modeling library\n- `nodemailer`: Send emails from Node.js\n- `shurjopay`: Payment gateway integration for ShurjoPay\n- `zod`: Schema validation library for data\n\n```bash\nnpm install bcrypt cookie-parser cors dotenv express http-status jsonwebtoken lint-staged mongoose nodemailer shurjopay zod\n```\n\n### Development:\n\n- `typescript`: TypeScript compiler\n- `eslint`: Linting tool for JavaScript/TypeScript\n- `prettier`: Code formatter\n- `ts-node-dev`: Development server for TypeScript\n\n```bash\n  npm install --save-dev @eslint/js @types/bcrypt @types/cookie-parser @types/cors @types/eslint__js @types/express @types/form-data @types/jsonwebtoken @types/node @types/nodemailer eslint globals prettier ts-node-dev typescript typescript-eslint\n```\n\n## API Endpoints\n## CARS\n-`Get api/car`\n\n-`POST api/car`\n\n-`PATCH api/car/:id`\n\n-`DELETE api/car/:id`\n\n-`GET api/car/:id`\n\n## USER\n-`POST(REGISTER) api/auth/register`\n\n-`POST(LOG IN) api/auth/login`\n\n-`POST(LOG OUT) api/auth/logout`\n\n-`POST(CHANGE PASSWORD) api/auth/change-password`\n\n-`GET(USER) api/auth/user`\n\n-`GET(USER OWN) api/auth/me`\n\n\n## CART\n-`POST api/cart`\n\n-`GET api/cart`\n\n-`GET api/cart/:id`\n\n-`DELETE api/cart/:id`\n\n## ORDERS\n-`POST api/order`\n\n-`POST(VERIFY) api/order/verify`\n\n-`GET api/order`\n\n-`GET(USER ORDER OWN) api/order/my-order`\n\n-`PATCH api/order/:id/status`\n\n-`GET(REVENUE) api/oder/revenue`\n\n## REVIEW\n-`POST api/review`\n\n-`GET api/review`\n\n-`GET(PRODUCT BASED) api/review/:id`\n\n\n\n## REGISTER\n```bash\n{\n  \"name\": \"Your Name\",\n  \"email\": \"yourname@example.com\",\n  \"password\": \"yourpassword\",\n  \"phone\": \"+11111111111\",\n  \"address\": \"123 Main Street\",\n  \"city\": \"New York\"\n}\n```\n\n## ADD CAR\n```bash\n{\n    \"brand\": \"Honda 250\",\n    \"carName\": \"Honda Civic 250\",\n    \"image\": \"https://i.ibb.co.com/R7WwqxM/pexels-photo-116675.jpg\",\n    \"model\": \"2024\",\n    \"year\": 2024,\n    \"price\": 35000,\n    \"category\": \"Sedan\",\n    \"description\": \"The Honda Civic 2022 is a compact sedan with a modern design. Known for its fuel efficiency, excellent handling, and advanced technology, the Civic is perfect for those who need a reliable and stylish vehicle. With its sleek looks and comfortable interior, the Civic is ideal for daily driving, offering great fuel economy of 32 MPG in the city and 42 MPG on the highway.\",\n    \"quantity\": 10,\n    \"milage\": \"32 MPG\",\n    \"fuelType\": \"Petrol\",\n    \"inStock\": true\n}\n```\n\n## CREATE ORDER\n```bash\n{\n    \"cars\": [\n        {\n            \"car\": \"6795c98c02786d93f1084842\",\n            \"quantity\": 1\n        }\n    ]\n}\n```\n\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmubasshir14%2Fcar-store-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmubasshir14%2Fcar-store-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmubasshir14%2Fcar-store-backend/lists"}