ElectroHub is a full-stack e-commerce application specialized in selling electronics, built using the MEAN stack (MongoDB, Express.js, Angular, Node.js). This project covers a complete e-commerce workflow including authentication, product management, cart, checkout, and order management.
- Full-stack e-commerce system for electronics.
- Secure backend with data validations.
- JWT authentication with access token and refresh token handling.
- Role-based authorization (Normal user & Admin).
- Complete RESTful API for backend operations.
- Browse products and view product details.
- Add products to cart and manage cart items.
- Checkout and manage orders.
- Edit profile information and profile picture.
- Change password and logout functionality.
- Email verification with confirmation code for login, registration, and password reset.
- All forms and inputs validated both on frontend and backend.
- Admin panel to manage users, products, and orders.
- Perform CRUD operations on products and users.
- Track orders and manage their statuses.
- Angular-based frontend with services, guards, and interceptors.
- Route handling for different user roles.
- Seamless integration with backend API.
- Responsive and interactive UI.
- Frontend: Angular 17
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JWT, Access Token & Refresh Token
- Other: Angular services, guards, and interceptors for API handling
Create a .env file inside the config folder inside the Backend folder with the following variables:
MOOD=DEV
DBURI="your_mongodb_connection_string"
PROJECTNAME="ProjectManagement"
PORT=5000
nodeMailerEmail="your_email@gmail.com"
nodeMailerPassword="your_email_password"
SALTROUND=8
ENCRYPTION_KEY="your_encryption_key"
EMAILTOKEN="your_email_token"
TOKINSEGNITURE="your_token_signature"
BARERKEY="Bearer "
SESSIONSECRET="your_session_secret"
STRIPE_KEY="your_stripe_key"
SUCCESS_URL="http://localhost:3000/#/orders"
CENCEL_URL="http://localhost:5000/order/cencelOrder"
endpointSecret="your_stripe_webhook_secret"