Welcome to XpressLine, a robust delivery website built using React, Node.js, Express, and MongoDB. This project provides users with a seamless experience for ordering medicine, groceries, and parcel deliveries. The application supports user authentication via email and password, hashed for security, or through Google login. Additionally, phone numbers are verified using the Twilio API, ensuring a secure and reliable registration process.
-
User Authentication
Users can register and log in using their email and password. Passwords are securely hashed and stored in the MongoDB database. -
Google Login
Seamless integration with Google login for a convenient authentication process. -
Phone Number Verification
Twilio API is utilized to send OTPs for phone number verification during the registration process. -
Medicine, Grocery, and Parcel Delivery
Users can place orders for medicine, groceries, and parcel delivery. -
Parcel Delivery
Users can enter pickup details and choose pickup and drop-off locations on a map, integrated using the MAPBOX API. -
Cost Calculation
The cost of delivery is generated using a formula to provide transparency to users. -
Payment Gateway
Stripe Payment API is used to visualize and demonstrate the payment gateway for a secure and smooth transaction process. -
Order Details
All order details are stored in the MongoDB database for easy tracking and management. -
Forgot Password
Users have the option to reset their password through a forgot password link sent via nodemailer. -
Grocery and Medicine Order Management
Users can choose from various items for grocery and medicine deliveries, with the ability to add items multiple times. Redux is employed to manage item counts effectively.
- Clone the repository to your local machine.
git clone https://github.com/your-username/XpressLine.git
-
Install dependencies for the client and server.
cd XpressLine/client
npm install --legacy-peer-deps
cd ../server
npm install
- Set up environment variables.
Create a .env file in the server directory with the necessary credentials for MongoDB, Twilio, MAPBOX, and Stripe. Run the application. -
Start the server
cd ../server
npm start
-
Start the client
cd ../client
npm start
Open your browser and navigate to http://localhost:3000 to access XpressLine.
- React
- Node.js
- Express
- MongoDB
- Twilio API
- MAPBOX API
- Stripe Payment API
- Redux
- NodeMailer