rentwheels

An online booking system designed to meet the needs of any car-renting business. Allows a user to rent cars from a variety of locations and post their own vehicle for rent. User is able to upload photos of their vehicle and accept payments via Stripe.

MIT License

Stars
1
Committers
2

RentWheels

This is a Next.js project bootstrapped with create-next-app.

This project uses next/font to automatically optimize and load Inter, a custom Google Font.

📋 Table of Contents

  1. 🌐 Demo
  2. 🤖 Introduction
  3. 📝 Description
  4. ⚙️ Tech Stack
  5. 🔋 Features
  6. 🛠️ Setup
  7. 🔍 Usage
  8. To-do
  9. 📜 Credits
  10. 📚 References
  11. 📞 Contact
  12. 📋 License

🌐 Demo

Here is a working live demo: RentWheels

🤖 Introduction

RentWheels - An online booking system designed to meet the needs of any car-renting business. Allows a user to rent cars from a variety of locations and post their own vehicle for rent. User is able to upload photos of their vehicle and accept payments via Stripe.

📝 Description

Welcome to my project! Here, I'll provide you with a brief overview of what inspired me to create it, why it solves a problem, and what I've learned throughout its development.

  • Motivation: I was motivated to build this project to address a specific issue and to enhance my coding skills.
  • Why I Built This Project: My main goal was to create a practical and user-friendly solution to a real-world problem.
  • Problem Solved: This project aims to simplify a particular task, making it more efficient and accessible.
  • What I Learned: Throughout the development process, I gained valuable insights into various technologies and programming concepts.

⚙️ Tech Stack

  • Next.js
  • TypeScript
  • PostgresSQL
  • Shadcn
  • Tailwind CSS
  • Prisma ORM
  • Clerk
  • AuthO
  • React-Hook form
  • Zod
  • Stripe
  • Uploadthing

🔋 Features

👉 Authentication: Seamlessly log in or sign up.

👉 Profile Management: Easily update profile details and link social media accounts for enhanced connectivity.

👉 Search & Filter: Retrieve cars swiftly with global search and filtering.

👉 Upload Cars: Upload photos of your cars.

👉 Make a Payment: Pay for renting a car via Stripe.

👉 Car Collection: Explore content easily with pagination features.

👉 Responsive: Ensures seamless functionality and aesthetics across all devices and many more, including code architecture and reusability.

🛠️ Setup Project

To get this project up and running in your development environment, follow these step-by-step instructions.

🍴 Prerequisites

We need to install or make sure that these tools are pre-installed on your machine:

  • NodeJS: It is a JavaScript runtime build.
  • Git: It is an open source version control system.

🚀 Install Project

  1. Clone the Repository
git clone [email protected]:ManmeetSinghJohal/rentwheels.git
  1. Install packages
npm install
  1. Create a .env file
CLERK_SECRET_KEY=sk_test_...........
CLERK_WEBHOOK_SECRET=whsec_.........

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_.......
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/ 

NX_DAEMON=""
POSTGRES_URL="postgres://default:......."
POSTGRES_PRISMA_URL="postgres://default:......"
POSTGRES_URL_NON_POOLING="postgres://default......."
POSTGRES_USER="default"
POSTGRES_HOST="ep-empty-......"
POSTGRES_PASSWORD="S7......"
POSTGRES_DATABASE="ver...."
TURBO_REMOTE_ONLY=""
TURBO_RUN_SUMMARY=""
VERCEL="1"
VERCEL_ENV="development"
VERCEL_GIT_COMMIT_AUTHOR_LOGIN=""
VERCEL_GIT_COMMIT_AUTHOR_NAME=""
VERCEL_GIT_COMMIT_MESSAGE=""
VERCEL_GIT_COMMIT_REF=""
VERCEL_GIT_COMMIT_SHA=""
VERCEL_GIT_PREVIOUS_SHA=""
VERCEL_GIT_PROVIDER=""
VERCEL_GIT_PULL_REQUEST_ID=""
VERCEL_GIT_REPO_ID=""
VERCEL_GIT_REPO_OWNER=""
VERCEL_GIT_REPO_SLUG=""
VERCEL_URL=""

DATABASE_URL=postgresql:/......
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=AIza......

NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_5......
STRIPE_SECRET_KEY=sk_test_......
STRIPE_WEBHOOK_SECRET=whsec_......

NEXT_PUBLIC_SERVER_URL=http://localhost:3000/

UPLOADTHING_SECRET=sk_live_.....
UPLOADTHING_APP_ID=slxhot...... 
  1. Run the dev server.
npm run dev

🔍 Usage

How To Use

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

# Clone this repository
$ git clone [email protected]:ManmeetSinghJohal/rentwheels.git

# Go into the repository
$ cd projectname

# Install dependencies
$ npm install

# Run the app
$ npm run dev

Note If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

⚒️ How to Contribute

Want to contribute? Great!

To fix a bug or enhance an existing module, follow these steps:

  • Fork the repo
  • Create a new branch (git checkout -b improve-feature)
  • Make the appropriate changes in the files
  • Add changes to reflect the changes made
  • Commit your changes (git commit -am 'Improve feature')
  • Push to the branch (git push origin improve-feature)
  • Create a Pull Request

📩 Bug / Feature Request

If you find a bug (the website couldn't handle the query and / or gave undesired results), kindly open an issue here by including your search query and the expected result.

If you'd like to request a new function, feel free to do so by opening an issue here. Please include sample queries and their corresponding results.

✅ To-do

Will update soon!

📜 Credits

I'd like to acknowledge my collaborators, who contributed to the success of this project. Below are links to their GitHub profiles.

Furthermore, I utilized certain third-party assets that require attribution. Find the creators' links in this section.

If I followed tutorials during development, I'd include the links to those as well.

👦 Marko Todorovic Email: [email protected] GitHub: @Marko026

👦 Stephan Yu Email: [email protected] GitHub: @StephanYu

👦 Romain Dussuchal Email: [email protected] GitHub: @RomainDussuchal

📚 References

None at the moment.

📞 Contact Me

📋 License