{"id":17520436,"url":"https://github.com/ahmedeid6842/car","last_synced_at":"2026-04-29T23:03:38.989Z","repository":{"id":196141339,"uuid":"690812382","full_name":"ahmedeid6842/Car","owner":"ahmedeid6842","description":"🚗 Nest.js project that aims to provide accurate pricing information for used cars. This application leverages the power of Nest.js, a progressive Node.js framework.","archived":false,"fork":false,"pushed_at":"2023-09-21T02:00:02.000Z","size":571,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-06T14:31:53.703Z","etag":null,"topics":["nestjs","nodejs","solid-principles","sqlite","typeorm"],"latest_commit_sha":null,"homepage":"","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/ahmedeid6842.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-09-12T23:51:31.000Z","updated_at":"2023-09-21T01:58:36.000Z","dependencies_parsed_at":"2023-09-21T14:45:21.080Z","dependency_job_id":"4418ecd5-1ffb-40af-823c-01a6e349858c","html_url":"https://github.com/ahmedeid6842/Car","commit_stats":null,"previous_names":["ahmedeid6842/car"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedeid6842%2FCar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedeid6842%2FCar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedeid6842%2FCar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedeid6842%2FCar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahmedeid6842","download_url":"https://codeload.github.com/ahmedeid6842/Car/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246113640,"owners_count":20725501,"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":["nestjs","nodejs","solid-principles","sqlite","typeorm"],"created_at":"2024-10-20T11:04:55.284Z","updated_at":"2026-04-29T23:03:33.937Z","avatar_url":"https://github.com/ahmedeid6842.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"http://nestjs.com/\" target=\"blank\"\u003e\u003cimg src=\"https://nestjs.com/img/logo-small.svg\" width=\"200\" alt=\"Nest Logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eCar\u003c/h1\u003e\n\n### 📑 Table of Contents\n- [📘 Introduction](#introduction)\n- [🚀 Getting Started](#getting-started)\n  - [Prerequisites ❗](#prerequisites)\n  - [Environment Variables :key:](#environment-variables)\n  - [Setup ⬇️](#setup)\n  - [Install :heavy_check_mark: ](#install)\n  - [Usage 🤿 🏃‍♂️](#usage)\n- [🔍🏗️ API Reference](#api-reference)\n- [❓ FAQ ](#-faq-)\n- [👥 Authors](#authors)\n- [🤝 Contributing](#contributing)\n- [⭐️ Show Your Support](#show-your-support)\n- [💎 Lessons Learned](#lessons-learned)\n- [🙏 Acknowledgements](#acknowledgements)\n\n## 📘 Introduction \u003ca name=\"introduction\"\u003e\u003c/a\u003e\n\u003cp\u003e\nWelcome to Car, a Nest.js project that aims to provide accurate pricing information for used cars. This application leverages the power of Nest.js, a progressive Node.js framework, to build efficient and scalable server-side applications.\n\u003c/p\u003e\n\n\u003cp\u003e\nThe main goal of this project is to help users determine the fair market value of used cars by considering various factors such as make, model, mileage, condition, and location. By using Admin approval for the reports and estimate report querie, the application provides reliable pricing estimates that can assist car buyers, sellers, and enthusiasts in making informed decisions.\n\u003c/p\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🚀 Getting Started \u003ca name=\"getting-started\"\u003e\u003c/a\u003e\n\nTo get a local copy up and running, follow these steps.\n\n### Prerequisites ❗\u003ca name=\"prerequisites\"\u003e\u003c/a\u003e\n\nBefore running this project, make sure you have the following prerequisites installed:\n\n\u003cp\u003e\n \u003ca href=\"https://skillicons.dev\"\u003e\n        \u003cimg src=\"https://skillicons.dev/icons?i=nodejs,sqlite\u0026theme=dark\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/\"\u003e\u003cimg src=\"https://authy.com/wp-content/uploads/npm-logo.png\" width=\"50px\" height=\"50\"/\u003e\u003c/a\u003e\n \u003c/p\u003e\n\n### Environment Variables :key: \u003ca name=\"environment-variables\"\u003e\u003c/a\u003e\nTo run this project, you will need to add the following environment variables to a new file named `.env.development`:\n- `DB_NAME`: The name of the database (eg: db.sqlite).\n\n### Setup ⬇️ \u003ca name=\"setup\"\u003e\u003c/a\u003e\n1. Clone the repository:\n```shell\n   git clone https://github.com/ahmedeid6842/car.git\n```\n2. Change to the project directory:\n```shell\ncd ./car\n```\n\n### Install :heavy_check_mark: \u003ca name=\"install\"\u003e\u003c/a\u003e\n\nInstall the project dependencies using NPM:\n\n```shell\nnpm install\n```\n\n### Usage 🤿 🏃‍♂️ \u003ca name=\"usage\"\u003e\u003c/a\u003e\nTo start the application in development mode, run the following command:\n\n```shell\nnpm run start:dev\n```\n\nThe application will be accessible at http://localhost:3000.\n\n- Alright, it's showtime! 🔥 Hit `http://localhost:3000` and BOOM! 💥  You should see the \"Hello world\" message and the Car APIs working flawlessly. ✨🧙‍♂️\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🔍🏗️ API Refernce \u003ca name=\"api-reference\"\u003e\u003c/a\u003e\n\n\u003e The API reference provides detailed documentation on the available endpoints, request/response formats, and authentication requirements. \n\n![10-10 - routes drawio (1)](https://github.com/ahmedeid6842/Car/assets/57197702/c4b976b2-fd38-4bf4-ba51-440d7188bc80)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## ❓ FAQ \u003ca name=\"faq\"\u003e\u003c/a\u003e\n\n### How Nest.js enhances this application\n\nNest.js brings several benefits to this project, including:\n\n- **Modularity**: The application is structured using modules, allowing for better organization and maintainability of code.\n- **Dependency Injection**: Nest.js utilizes dependency injection, making it easy to manage and test different components of the application separately.\n- **Decorators**: Decorators in Nest.js simplify the implementation of features such as validation, authorization, and logging.\n- **Middleware**: Nest.js middleware enables handling of cross-cutting concerns, such as authentication and error handling, in a centralized manner.\n- **Scalability**: Nest.js is designed to support scalability, allowing the application to handle high traffic and large datasets efficiently.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 👤 Author \u003ca name=\"author\"\u003e\u003c/a\u003e\n**Ahmed Eid 🙋‍♂️**\n- Github: [@ahmedeid6842](https://github.com/ahmedeid6842/)\n- LinkedIn : [Ahmed Eid](https://www.linkedin.com/in/ahmed-eid-0018571b1/)\n- Twitter: [@ahmedeid2684](https://twitter.com/ahmedeid2684)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🤝 Contributing \u003ca name=\"contribution\"\u003e\u003c/a\u003e\n\nWe're always looking to improve this project! 🔍 If you notice any issues or have ideas for new features, please don't hesitate to submit a [pull request](https://github.com/ahmedeid6842/car/pulls) 🙌 or create a [new issue](https://github.com/ahmedeid6842/car/issues/new) 💡. Your contribution will help make this project even better! ❤️ 💪\n\n## ⭐️ Show your support \u003ca name=\"support\"\u003e\u003c/a\u003e\n\nIf you find this project helpful, I would greatly appreciate it if you could leave a star! 🌟 💟 \n\n## 💎 Lessons Learned\n\n1. **Nest Architecture: Services and Repositories**\n   - Learn about the Nest.js architecture and how to organize code using services and repositories.\n   - Understand the benefits of modular structure and separation of concerns.\n\n2. **Inversion of Control in NestJS**\n   - Explore the concept of inversion of control and how Nest.js follows this principle.\n   - Understand the importance of dependency injection and how it helps in managing and testing components.\n\n3. **Persisting Data with TypeORM**\n   - Learn how to persist data in the car project using TypeORM, an Object-Relational Mapping (ORM) library for TypeScript and JavaScript.\n   - Understand how to define entities and relationships, perform CRUD operations, and handle database migrations.\n\n4. **Interceptors and Middlewares**\n   - Intercept incoming requests and customize the serialization of user data using interceptors.\n   - Transform outgoing responses and add common functionality to requests using middlewares.\n\n5. **Authentication From Scratch**\n   - Implement authentication from scratch in the car project using Nest.js and the cookie-session package.\n   - Understand the concepts of sessions, cookies, and secure authentication strategies.\n\n6. **Setting up Database Relations with TypeORM**\n   - Learn how to define and manage database relations using TypeORM.\n   - Understand different types of relationships such as one-to-one, one-to-many, and many-to-many, and how to establish them in your application.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🙏 Acknowledgments \u003ca name=\"acknowledgements\"\u003e\u003c/a\u003e\n\nSpecial thanks to @StephenGrider for his invaluable course on Nest.js, which greatly contributed to the successful completion of the car project. 💟\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedeid6842%2Fcar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmedeid6842%2Fcar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedeid6842%2Fcar/lists"}