e-comm-team-axel25-(fe&be)
ERD
Backend
This repository contains a fully featured e‑commerce platform implemented by a collaborative development team.
This e‑commerce backend API (Team Axel) is implemented in TypeScript for Node.js. It provides typical storefront backend features: user authentication (including two‑factor and Google), product management, shopping cart and checkout/order flows, notifications, reviews, wishlist functionality, and a chat component. The repository also includes database migrations, seed scripts, and automated tests.
Key responsibilities and features
- User authentication and account flows: registration, login, password reset, two‑factor authentication, and Google OAuth.
- Product catalogue management: create/read/update product endpoints and search utilities.
- Shopping cart and checkout: cart management and order creation (Stripe integration available).
- Reviews and ratings for products.
- Notifications and real‑time chat via Socket.io.
- Wishlist management.
- Background jobs for routine maintenance (cron jobs).
- OpenAPI / Swagger documentation is provided in the docs directory.
Tech stack
- Node.js with TypeScript
- Express
- Sequelize ORM with PostgreSQL (pg / pg-hstore)
- Testing: Jest and SuperTest
- Linting and formatting: ESLint and Prettier, with Husky and lint-staged
- Package manager: pnpm
- Real‑time communication: Socket.io
- Payment processing: Stripe
- CLI tooling: sequelize-cli for migrations and seed data
- Documentation: Swagger / OpenAPI YAML files Swagger (OpenAPI)
Frontend
The frontend application, “team-axel-e-commerce-frontend”, is implemented with React and TypeScript.
- Built with React and TypeScript, utilising Redux Toolkit for state management.
- Bundled with Webpack and managed with pnpm.
- Provides user-facing features such as product browsing, cart management, and checkout, as well as seller-facing interfaces for product management.
- Integrates with backend services via API slices and uses Firebase where applicable.
- Includes UI and UX tooling: Tailwind CSS, Framer Motion, react-toastify, react-hook-form, Storybook for component development, and testing with Jest and Testing Library.
Primary features include a home page with a product showcase, product listing and card components, authentication flows with protected routes, cart and checkout management, and notification handling. The application employs React Router v6 for client-side routing.
