A modern fashion e-commerce application featuring a clean/responsive UI and scalable backend architecture.This full-stack application provides a seamless shopping experience with user authentication, cart management, and an admin panel for product management.
- User Authentication: Secure signup/signin with JWT-based authentication
- Shopping Cart: Add, remove, and manage cart items with quantity controls
- Product Collection: Browse and explore the complete product catalog
- Admin Panel: Create, manage, and delete products
- User Profiles: Manage user account information and profile images
- Responsive Design: Modern UI built with Tailwind CSS, optimized for all devices
- File Upload: Image upload support for products and user profiles using Multer
- Node.js - Runtime environment
- Express.js - Web framework
- MongoDB - Database with Mongoose ODM
- JWT - Authentication tokens
- Bcrypt - Password hashing
- Multer - File upload handling
- Zod - Schema validation
- EJS - Server-side templating engine
- Tailwind CSS - Utility-first CSS framework
- Vanilla JavaScript - Client-side interactivity
- Nodemon - Auto-restart during development
- Morgan - HTTP request logger
- Concurrently - Run multiple scripts simultaneously
drip-attire/
├── src/
│ ├── controllers/ # Business logic handlers
│ │ ├── adminController.js
│ │ └── userController.js
│ ├── middlewares/ # Authentication & file upload
│ │ ├── adminAuth.js
│ │ ├── userAuth.js
│ │ └── multerLogic.js
│ ├── models/ # MongoDB schemas
│ │ ├── adminModel.js
│ │ ├── productModel.js
│ │ └── userModel.js
│ ├── routes/ # Route definitions
│ │ ├── adminRoutes.js
│ │ ├── ejsRoutes.js
│ │ └── userRoutes.js
│ ├── styles/ # Tailwind CSS source
│ │ └── input.css
│ ├── utils/ # Utility functions
│ │ └── zodValidation.js
│ ├── .config/ # Configuration files
│ │ └── mongodb.config.js
│ └── server.js # Application entry point
├── public/ # Static assets
│ ├── assets/ # Images, icons, uploads
│ ├── javascripts/ # Client-side scripts
│ ├── stylesheets/ # Compiled CSS
│ └── favicon.ico
├── views/ # EJS templates
│ ├── partials/ # Reusable components
│ └── *.ejs # Page templates
├── tailwind.config.js # Tailwind configuration
├── package.json
└── README.md
- Node.js (v14 or higher)
- MongoDB database (local or cloud instance like MongoDB Atlas)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd drip-attire
-
Install dependencies
npm install
-
Configure environment variables
Create a
.envfile in the root directory:PORT=3000 MONGO_URL=your_mongodb_connection_string USER_JWT_SECRET=your_user_jwt_secret_key ADMIN_JWT_SECRET=your_admin_jwt_secret_key SESSION_SECRET=your_session_secret_key
-
Build Tailwind CSS
npm run build
-
Start the server
npm start
For development with auto-reload:
npm run conc
-
Access the application
- Open
http://localhost:3000in your browser
- Open
POST /signup- User registrationPOST /signin- User loginGET /account- Get user account (protected)GET /cart- Get user cart (protected)POST /cart/add- Add item to cart (protected)DELETE /cart/delete- Remove item from cart (protected)DELETE /cart/decreement- Decrease item quantity (protected)DELETE /cart/clear- Clear entire cart (protected)DELETE /logout- User logout (protected)
POST /signup- Admin registrationPOST /signin- Admin loginGET /account- Get admin account (protected)POST /create- Create new product (protected)DELETE /delete- Delete product (protected)DELETE /clear- Clear all products (protected)DELETE /logout- Admin logout (protected)
GET /- HomepageGET /collection- Product collection pageGET /cart- Shopping cart pageGET /checkout- Checkout pageGET /user/signup- User registration formGET /user/signin- User login formGET /user/account- User account pageGET /admin/signin- Admin login formGET /admin/account- Admin dashboard (protected)GET /admin/create- Create product page (protected)GET /refundpolicy- Refund policy pageGET /terms-and-conditions- Terms & conditions page
- User/Admin signs up or signs in
- Server validates credentials and hashes passwords using bcrypt
- JWT token is generated and stored in HTTP-only cookie
- Protected routes verify token via middleware
- Token expiration/logout clears the cookie
The application is configured for Railway deployment:
- Build Process: Automatically runs
npm run buildto compile Tailwind CSS - Start Command:
npm start(builds CSS and starts server) - Environment Variables: Set all required env vars in Railway dashboard
- MongoDB: Use MongoDB Atlas or Railway's MongoDB service
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
Distributed under the MIT License.