Ruramart is a comprehensive e-commerce platform designed to list and manage shops in rural areas. It aims to bridge the gap between rural shops and potential customers by providing an online presence for these shops, showcasing their products, and offering an easy way for customers to find, review, and purchase products. The platform includes features for user registration and management, product listings, reviews, cart management, and order processing.
- User Authentication: Registration, authentication, and role-based access control for users, sellers, and admins.
- Shop and Product Management: Detailed listings of shops and their products, including descriptions, prices, and availability.
- Review System: Allow users to leave ratings and comments on products.
- Live Chat: Engage in real-time conversations with other users and sellers through the live chat feature.
- Order and Cart Management: Enable users to add products to their cart, place orders, and track order statuses.
- Responsive Design: The platform is designed to provide a seamless experience across various devices.
- Modular Architecture: Embrace a modular architecture that enhances flexibility and scalability for future development.
- React.js: A JavaScript library for building user interfaces.
- Redux.js: A predictable state container for JavaScript apps.
- TailwindCSS: A utility-first CSS framework for rapidly building custom designs.
- Ant Design: A design system for enterprise-level products.
HTTP Client:
- Axios: A promise-based HTTP client for making requests to APIs. Axios is used to interact with the server-side API.
- Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine.
- Express.js: A minimal and flexible Node.js web application framework.
- Socket.io: Real-time bidirectional event-based communication.
- MongoDB (Mongoose): A NoSQL database used to store and retrieve data.
- JWT Token: JSON Web Token for user authentication.
The live project can be accessed at https://ruramart.vercel.app
-
Clone the repository:
git clone https://github.com/afsify/ruramart-directory.git
-
Set up environment variables:
Create a
.env
file in the root directory or rename the current.env.sample
file and configure necessary variables for client and server sides.Client ENV
VITE_STRIPE_KEY = stripe-payment-key VITE_GOOGLE_ID = google-auth-id VITE_JITSI_ID = jitsi-meeting-id VITE_USER_URL = user-backend-url VITE_ADMIN_URL = admin-backend-url VITE_CLOUD_NAME = cloudinary-upload-name VITE_CHAT_PRESET = cloudinary-chat-preset VITE_CLOUD_PRESET = cloudinary-upload-preset VITE_PROFILE_PRESET = cloudinary-profile-preset
Server ENV
STRIPE_KEY = stripe-secret-key MONGO_URL = mongo-atlas-url JWT_SECRET = jwt-secret-code GMAIL_USER = smtp-gmail-email GMAIL_PASS = smtp-gmail-password CLIENT_URL = react-frontend-url PRIME_GROUP = prime-group-id
-
Navigate to the client directory:
Open a terminal in Visual Studio Code and split it into two terminals. In the first terminal, navigate to the client directory:
cd client
-
Install client side dependencies:
npm install
-
Start the client-side application:
npm start
The client-side application will be running on http://localhost:3000
-
Navigate to the server directory:
In the second terminal, navigate to the server directory:
cd server
-
Install server side dependencies:
npm install
-
Start the server:
npm start
The server will be running on http://localhost:5000
Detailed API documentation can be found in the Ruramart_API_Documentation.docx
The database design can be viewed in Ruramart_DB_Design.pdf
The Figma prototype design can be viewed Ruramart_UI
The list of modules can be found in the Ruramart_Modules.docx
Contributions are welcome! Feel free to open issues and pull requests.