Resallle is a modern, full-stack e-commerce web application designed for the fashion and clothing industry. Built with Next.js, its features include a dynamic storefront and an advanced product catalogue with filtering options. It also offers user authentication and uses the FakeStoreAPI to fetch product data via API.
- Dynamic Homepage: Showcases featured collections, trending products, user reviews, and blog highlights.
- Product Catalog: Browse products with multi-level category navigation and dynamic filtering by price range.
- User Authentication: Secure user sign-in and sign-up functionality using JWT.
- State Management: Utilizes TanStack Query for server state and Redux Toolkit for global client state (user authentication).
- Responsive Design: Fully responsive layout for seamless browsing on desktop, tablet, and mobile devices.
- Containerized: Docker support for easy setup and deployment.
- CI/CD Pipeline: Automated build, linting, and deployment pipeline using GitHub Actions.
- Framework: Next.js (with Turbopack)
- Language: TypeScript
- UI Library: React
- Styling: Tailwind CSS, Font Awesome
- State Management: TanStack Query, Redux Toolkit
- Animations: Motion One
- Containerization: Docker
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
- Node.js (v20.x or later)
- npm, pnpm, or yarn
-
Clone the repository:
git clone https://github.com/nodewalker/resallle.git
-
Navigate to the project directory:
cd resallle -
Install dependencies:
npm install # or pnpm install # or yarn
-
Set up environment variables: Create a file named
.env.localin the root of the project and add the backend API URL. The application is configured to work withfakestoreapi.ru.API_URL=https://fakestoreapi.ru -
Run the development server:
npm run dev
The application will be available at
https://localhost:3000(uses--experimental-https).
The application is fully containerized and can be run using Docker Compose.
- Ensure you have Docker and Docker Compose installed.
- Run the following command from the project root:
This will build the Docker image and start the Next.js application, accessible at
docker-compose up --build
http://localhost:8000.
npm run dev: Starts the Next.js development server with Turbopack and HTTPS.npm run build: Creates a production-ready build of the application.npm run start: Starts the production server from the build output.npm run lint: Lints the source code using ESLint.
This repository is configured with GitHub Actions to automate testing and deployment.
check.yml: Triggered on pushes and pull requests to thedevbranch. It runsnpm install,npm run build, andnpm run lintto ensure code quality and build integrity.dev.yml: Triggered upon the successful completion of thecheckworkflow on thedevbranch. It automatically merges changes fromdevinto themasterbranch.deploy.yml: Triggered on pushes to themasterbranch. It deploys the application to the production server via SSH, builds a new Docker image, and restarts the service.
