Pardon render.com's slow service to the server for initial api response
An individual project to sharpen the skillset of MERN stack. I'm a big fan of MVC architecture and have been followed in this project. A well-written maintained, and sophisticated backend with models, controllers, middlewares, and other folders to make it easy to maintain and debug. The usage of middlewares makes it much more performant such as cors, compression, and optimizing the API response delivery. Also, usage of media management tools like Cloudinary to upload user profile pictures, Gig slider images, and cover images. As for the front end, the UI has only been built using JSX and Scss. For state management and error handling, hooks from the Tanstack library have been implemented. Lastly, react-router-dom for routing and private routes.
- Registration, login and gig organize forms
- Homepage / Landing Page with sliding menu
- Gigs page with all categories
- Gig description
- Gig management
- Payments page with Stripe integration
- Message page with one-to-one chat with seller and buyer
- Single gig page
- Gig search
- Image uploading via cloudinary, a media management
- Chat with buyers
- Create new gigs and
- Only the seller's gig can be deleted
- Gigs can be reviewed by buyers based on comment and stars
- Chat with seller
- Filter and sort gigs for range of price
- My Orders Section for details of all gigs bought
- Can review gig and give stars
- Order securely with Stripe
- Search gigs with keywords
This project was built using React, Redux, Sass, HTML, JavaScript, Rest API, Node JS, Express and MongoDB with JWT and Stripe integration. It is an freelance outsourcing web application and for running on your local environment you should follow these guidelines.
- NPM
- Node JS
- MongoDB
The project repository can be found in GitHub link or just clone the project using this command.
Using HTTPS
# git clone https://github.com/zuhedshaikh95/fiverr-clone.git
- Open terminal on your workspace with
cd /home/workspace/fiverr-clone
Install NPM
Check that you have node and npm installed
To check if you have Node.js installed, run this command in your terminal:
node -v
To confirm that you have npm installed you can run this command in your terminal:
npm -v
To confirm that you have MongoDB installed you can run this command in your terminal:
mongo -v
To install all the dependences of the project, run the following command:
cd client
npm install
cd ../
cd server
npm install
To run the application got to the client folder and run the following command:
npm run dev
To run this project, you will need to add the following environment variables to your .env file
JWT_SECRET
e.g. this_is_secret_123
MONGODB_URI
e.g. mongodb cluster URI
STRIPE_SECRET
e.g. Secret key from stripe dashboard
NODE_ENV
e.g. 'development' for local and 'production' for production
VITE_API_URL
e.g. http://localhost:3000/api or production deployed server link
VITE_STRIPE_PUBLISHABLE_KEY
e.g. Publishable key from stripe dashboard
CLOUDINARY_ENV
e.g Cloudinary environment string from your cloudinary dashboard
CLOUDINARY_PRESET
e.g. Cloudinary preset name from your cloudinary dashboard settings -> Uploads
- Visual Studio Code
- Vite-JS template
- MongoDB compass
- Stripe Dashboard to monitor payments
Β© 2023 Zuhed Shaikh
Give a βοΈ if you like this project!