Rochetta is a MERN-Stack web application that provides a seamless experience for users to purchase medicines online and for admins to manage pharmacy operations.
demo.mp4
- Browse medicines by categories.
- Choose between purchasing a strip or a full box, just like a real pharmacy.
- Add medicines to the Cart and manage quantities.
- Place an Order.
- Some medicines require a prescription (cannot be purchased without a prescription).
- Add new products with images, prices, and details.
- Edit or delete existing products.
- React.js
- React Router DOM
- Bootstrap
- Axios
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT Authentication & Bcrypt for password hashing
- Cloudinary for product image uploads
- Rate Limiting for security
- Validation with Joi for request validation
- Swagger for API documentation
- Home Page β Showcase top products and quick navigation to categories.
- Cart Page β View, update, and remove products from the cart.
- Profile Page β Display user details and manage account.
- Categories Page β Browse products by category.
- Authentication β Sign Up & Login functionality with JWT stored in Local Storage.
- Dark Mode β Toggle between light and dark themes.
- Product Search β Search for products by name or keyword.
- 404 Page β Custom page for invalid routes.
- Responsive Design β Built with Bootstrap for mobile-friendly UI.
- Authentication & Authorization β Secure login/register using JWT & bcrypt with role-based access (User/Admin).
- Product Management β Admin can add, edit, and delete products with images uploaded to Cloudinary.
- Order Management β Create, update, and manage orders with different statuses.
- Cart Management β Add, update, and remove items in the cart.
- Validation β Request validation with Joi for products, users, and orders.
- Security β Implemented Rate Limiting and password hashing to prevent brute-force attacks.
- API Documentation β Integrated Swagger UI for interactive API exploration and testing.
- Database β Built with MongoDB & Mongoose for schema modeling and data relationships.
Below is the ERD representation of the system:
Here are sample screenshots from Swagger UI showing the API endpoints:
Thanks goes to these wonderful people in the Fullstack team:
|
Abdelrahman Elaraby |
Abdelrahman Selim |