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 |