{"id":20942995,"url":"https://github.com/harshitpachori/ride_fast","last_synced_at":"2025-04-11T15:52:37.992Z","repository":{"id":225502718,"uuid":"766150306","full_name":"HarshitPachori/ride_fast","owner":"HarshitPachori","description":"This is Ride-Fast application which have functionalities like Rapido or OLA . It is a simple ride sharing application.","archived":false,"fork":false,"pushed_at":"2024-06-14T16:11:35.000Z","size":18642,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T12:03:39.208Z","etag":null,"topics":["docker","java","junit5","jwt-authentication","lombok","material-ui","maven","mockito","mysql","nextjs14","payment-gateway","razorpay","spring-boot","spring-data-jpa","spring-security","swagger-ui","tailwindcss","testcontainers","tsx","typescript"],"latest_commit_sha":null,"homepage":"https://ride-fast.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/HarshitPachori.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":"2024-03-02T13:31:24.000Z","updated_at":"2025-02-15T13:25:37.000Z","dependencies_parsed_at":"2024-06-14T17:37:15.923Z","dependency_job_id":null,"html_url":"https://github.com/HarshitPachori/ride_fast","commit_stats":null,"previous_names":["harshitpachori/ride_fast"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshitPachori%2Fride_fast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshitPachori%2Fride_fast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshitPachori%2Fride_fast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshitPachori%2Fride_fast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HarshitPachori","download_url":"https://codeload.github.com/HarshitPachori/ride_fast/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248435517,"owners_count":21103044,"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","java","junit5","jwt-authentication","lombok","material-ui","maven","mockito","mysql","nextjs14","payment-gateway","razorpay","spring-boot","spring-data-jpa","spring-security","swagger-ui","tailwindcss","testcontainers","tsx","typescript"],"created_at":"2024-11-18T23:32:42.456Z","updated_at":"2025-04-11T15:52:37.971Z","avatar_url":"https://github.com/HarshitPachori.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `RIDE FAST - A Cab Booking Application`\n\nThis project is a `CAB Booking application` by which a user can book a cab by just typing there pickup and destination location. With a robust Backend in `Java` and `Spring Boot` \u0026 visualy appealing user interface or Frontend in `NextJs` , `Typescript` and `TailwindCSS` \u0026 `Razorpay Payment Gateway` for overall better user experience and easyness, we have developed this application.\n\n## TECH STACK\n\n- \u003cb\u003e`Backend`\u003c/b\u003e : Java, Spring Boot, Spring Security, Spring Data JPA, JWT Authentication, MySQL, Postman, Junit, Mockito, TestContainers, Docker, RestAssured, etc.\n- \u003cb\u003e`Frontend`\u003c/b\u003e : ReactJs, NextJs14, TailwindCSS, Redux-Toolkit Typescript, MaterialUI, etc\n\n## Table of Contents\n\n- [Software and Tools required](#software-and-tools-required)\n- [Installation](#installation)\n- [Running the Server](#running-the-server)\n- [Running the Frontend](#running-the-frontend)\n- [API Endpoints](#api-endpoints)\n  - [Register User](#register-user)\n  - [Login User](#login-user)\n  - [Register Driver](#register-driver)\n  - [Login Driver](#login-driver)\n  - [Book Ride](#book-ride)\n  - [Accept Ride](#accept-ride)\n  - [Start Ride](#start-ride)\n  - [Complete Ride](#complete-ride)\n  - [Decline Ride](#decline-ride)\n  - [Get Ride By Id](#get-ride-by-id)\n  - [Requested Rides By User](#request-rides-by-user)\n  - [Completed Rides By User](#completed-rides-by-user)\n  - [Completed Rides By Driver](#completed-rides-by-driver)\n  - [Cancelled Rides By Driver](#cancelled-rides-by-driver)\n- [Responses](#responses)\n  - [Success Responses](#success-responses)\n  - [Error Responses](#error-responses)\n- [Postman Collection](#postman-collection)\n- [Snapshots](#snapshots)\n\n## Software and Tools required\n\n- JDK 17 or more\n- NodeJs\n- Git\n- MySQL Client\n- Docker\n- For Backend (IDE or Editors)\n  - IntelliJ Idea (Community / Ultimate)\n  - Spring Tool Suite (STS)\n  - Eclipse\n  - NetBeans\n  - Visual Studio Code (VS Code)\n- For Frontend (Editors)\n  - Visual Studio Code(VS Code) -\u003e `Recommended`\n  - Sublime Text\n\n## Installation\n\n### Clone Git Repository to your local machine\n\n```bash\ngit clone https://github.com/HarshitPachori/ride_fast.git\n```\n\n### Backend\n\n## Running the Server\n\n- \u003cb\u003eServer Directory\u003c/b\u003e\n\n  ```bash\n  cd ride_fast_backend\n  ```\n\n- \u003cb\u003eSetup Database\u003c/b\u003e\n\n  - Go to `ride_fast_backend/src/main/resources/application.yaml` file and replace the port, url, username, password with your server `port` address and your `mysql` credentials.\n\n    ```yaml\n    server:\n      port: 8080\n    spring:\n      datasource:\n        url: jdbc:mysql://localhost:3306/ride_fast_db?createDatabaseIfNotExist=true\n        username: root\n        password: mysql\n      jpa:\n        hibernate:\n          ddl-auto: update\n        show-sql: true\n        properties:\n          format_sql: true\n    ```\n\n- \u003cb\u003eRun Server\u003c/b\u003e\n  ```bash\n  ./mvnw spring-boot:run\n  ```\n\n## Running the Frontend\n\n- \u003cb\u003eClient Directory\u003c/b\u003e\n\n  ```bash\n  cd ride_fast_frontend\n  ```\n\n- \u003cb\u003eUpdate or Install Npm Packages\u003c/b\u003e\n  ```bash\n  npm install\n  ```\n- \u003cb\u003eMove to `ride_fast_frontend/next.config.mjs` file\u003c/b\u003e\n\n  - Replace the following path in destination field with your server url to apply `proxy` for server so that all our frontend's request to server starting with `/api` will get redirected to this URL.\n\n    ```js\n     async rewrites() {\n      return [\n        {\n          source: \"/api/:path*\",\n          destination: \"http://localhost:8080/api/:path*\",\n        },\n      ];\n    },\n    ```\n\n- \u003cb\u003eRun Client\u003c/b\u003e\n\n  ```bash\n  npm run dev\n  ```\n\n## API Endpoints\n\n- ### Register User\n\n  ```java\n   @route POST /api/v1/auth/register/user\n   @desc Register New User\n   @param {String} fullname\n   @param {String} mobile\n   @param {String} email\n   @param {String} password\n   @returns {Object} User\n   @returns {StatusCode} 201 - Created\n   @returns {StatusCode} 400 - Bad Request\n  ```\n\n- ### Login User\n\n  ```java\n   @route POST /api/v1/auth/login\n   @desc Login User\n   @param {String} email\n   @param {String} password\n   @param {String} userType\n   @returns {Object} {String} accessToken, {String} refreshToken\n   @returns {StatusCode} 200 - OK\n   @returns {StatusCode} 400 - Bad Request\n   @returns {StatusCode} 404 - Not Found\n  ```\n\n- ### Register Driver\n\n  ```java\n   @route POST /api/v1/auth/register/driver\n   @desc Register new Driver\n   @param {String} fullname\n   @param {String} email\n   @param {String} password\n   @param {String} mobile\n   @param {double} latitude\n   @param {double} longitude\n   @param {String} licenseNumber\n   @param {String} licenseState\n   @param {String} licenseExpirationDate\n   @param {String} company\n   @param {String} model\n   @param {String} color\n   @param {int} year\n   @param {String} licensePlate\n   @param {int} capacity\n   @returns {Object} Driver\n   @returns {StatusCode} 201 - Created\n   @returns {StatusCode} 400 - Bad Request\n  ```\n\n- ### Login Driver\n\n  ```java\n   @route POST /api/v1/auth/login\n   @desc Login Driver\n   @param {String} email\n   @param {String} password\n   @param {String} userType\n   @returns {StatusCode} 200 - OK\n   @returns {StatusCode} 400 - Bad Request\n   @returns {StatusCode} 404 - Not Found\n  ```\n\n- ### Book Ride\n\n  ```java\n   @route POST /api/v1/ride/request\n   @desc Book Ride\n   @header {Authorization} jwtToken\n   @param {String} pickupArea\n   @param {String} destinationArea\n   @param {double} pickupLatitude\n   @param {double} pickupLongitude\n   @param {double} destinationLatitude\n   @param {double} destinationLongitude\n   @returns {Object} Ride\n   @returns {StatusCode} 201 - Created\n   @returns {StatusCode} 400 - Bad Request\n  ```\n\n## Responses\n\n- ### Success Responses\n\n  - \u003cb\u003eLogin User/Driver (Success)\u003c/b\u003e\n\n    ```json\n    {\n      \"statusCode\": 200,\n      \"accessToken\": \"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqb2huQGdtYWlsLmNvbSIsImlhdCI6MTcxMDY3MjMyMSwiZXhwIjoxNzExNTcyMzIxfQ.LIc-mqKb1-RRsl4W4l4emn0GDfpSXDY1Wy6NfS9-7dY\",\n      \"refreshToken\": \"dfkjngfngn4gh5nf4z5hg4z5n5hg4xnx\",\n      \"message\": \"Got All Data Successfuly\",\n      \"success\": true\n    }\n    ```\n\n- ### Error Responses\n\n  ```json\n  {\n    \"statusCode\": 400,\n    \"message\": \"All fields are required\",\n    \"errors\": [],\n    \"success\": false\n  }\n  ```\n\n  ```json\n  {\n    \"statusCode\": 404,\n    \"message\": \"Resource Not Found with given Id\",\n    \"errors\": [],\n    \"success\": false\n  }\n  ```\n\n  ```json\n  {\n    \"statusCode\": 401,\n    \"message\": \"You need to be logged in first in order to perform this action\",\n    \"errors\": [],\n    \"success\": false\n  }\n  ```\n\n  ```json\n  {\n    \"statusCode\": 501,\n    \"message\": \"Internal Server Error\",\n    \"errors\": [],\n    \"success\": false\n  }\n  ```\n\n\u003c!-- - ## Postman Collection\n\n  - ### [Postman Collection Link](https://restless-moon-499399.postman.co/workspace/New-Team-Workspace~c7722ba8-7049-40b0-97c9-e367daa05b43/collection/23880545-2625be57-f365-488a-934e-4d7a9fe64389?action=share\u0026creator=23880545)   --\u003e\n\n- ## Snapshots\n\u003cimg src=\"./snapshots/s1.png\" /\u003e\n\u003cimg src=\"./snapshots/s2.png\" /\u003e\n\u003cimg src=\"./snapshots/s5.png\" /\u003e\n\u003cimg src=\"./snapshots/s6.png\"/\u003e\n\u003cimg src=\"./snapshots/s10.png\"/\u003e\n\u003cimg src=\"./snapshots/s11.png\"/\u003e\n\u003cimg src=\"./snapshots/s12.png\"/\u003e\n\u003cimg src=\"./snapshots/s13.png\"/\u003e\n\u003cimg src=\"./snapshots/s7.png\"/\u003e\n\u003cimg src=\"./snapshots/s8.png\"/\u003e\n\u003cimg src=\"./snapshots/s9.png\" height=\"500\"/\u003e\n\u003cimg src=\"./snapshots/s15.png\" height=\"500\"/\u003e\n\u003cimg src=\"./snapshots/s16.png\"/\u003e\n\u003cimg src=\"./snapshots/s17.png\"/\u003e\n\u003cimg src=\"./snapshots/s18.png\"/\u003e\n\u003cimg src=\"./snapshots/s19.png\"/\u003e\n\u003cimg src=\"./snapshots/s20.png\"/\u003e\n\u003cimg src=\"./snapshots/s21.png\"/\u003e\n\u003cimg src=\"./snapshots/s22.png\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshitpachori%2Fride_fast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharshitpachori%2Fride_fast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshitpachori%2Fride_fast/lists"}