shchegolenkov / rs-flowershop

eCommerce app | RS School JS course final project
https://rs-flowershop.netlify.app
0 stars 1 forks source link

RS-Flowershop πŸ›’πŸŒ

Welcome to our RS-Flowershop application! This platform replicates real-world shopping experiences in a digital environment. It's a comprehensive online shopping portal that provides an interactive and seamless experience to users. From product discovery to check out, the application ensures a smooth journey for the user, enhancing their engagement and boosting their purchasing confidence.

Table of Contents

  1. Introduction
  2. Key Pages
  3. Technology Stack
  4. Scripts
  5. Getting Started
  6. Development Process
  7. Testing
  8. Development
  9. Testing
  10. Contributing
  11. Authors

Introduction

Our eCommerce application aims to revolutionize the online shopping experience by providing a user-friendly platform that offers a vast range of products from various categories. It caters to a wide audience of shoppers who prefer the convenience of online shopping and the ability to explore an extensive catalog of products.

Key Features:

Key Pages

The application consists of several key pages:

  1. Login page πŸ–₯οΈπŸ”
  2. Registration page πŸ’»πŸ“
  3. Main page 🏑
  4. Catalog Product page πŸ“‹
  5. Detailed Product page πŸ”Ž
  6. User Profile page πŸ‘€
  7. Basket page πŸ›’
  8. About Us page 🌏🚻
  9. 404 (Not Found) ❓

Technology Stack πŸ’»πŸ“š

The application is built using the following technologies:

Scripts

npm install: This command will install npm package, all modules listed as dependencies in package.json and triggered prepare script automatically.

npm run start: This script starts the development server using Webpack in development mode. It serves the application and automatically opens it in the default web browser.

npm run build: The build script uses Webpack to bundle the application in production mode, generating optimized and minified output files for deployment.

npm run lint: The lint script runs ESLint for coding style and potential errors.

npm run prettier: The format script uses Prettier to automatically format files.

npm run test: This script runs the test suite using Jest, executing all test files in the project to ensure proper functionality and identify potential issues.

npm run prepare: The prepare script is triggered automatically when you run npm install. It installs Husky, which sets up Git hooks for running tasks like linting and formatting before committing or pushing code.

These scripts help streamline the development process and maintain code quality. Husky ensures that code quality checks are executed before committing.

Getting Started

To run the application locally, follow these steps:

  1. Clone the repository: git clone https://github.com/shchegolenkov/rs-flowershop.
  2. Ask the Authors for access to the api.
  3. Install dependencies: npm install.
  4. Start the development server: npm start.
  5. Do hacking.

Development Process

During the development process, our e-Commerce application was crafted by a dedicated team of three talented individuals, each contributing their expertise and skills. Throughout the project, we followed an organized and efficient development process to ensure a seamless workflow and successful delivery of the application.

  1. Task Management: We used GitHub Project as our project management tool to keep track of tasks and their progress. Tasks were organized into lists representing different stages (To Do, In Progress, Review & Testing, Done) and consisted of smaller subtasks for better granularity. Each team member was responsible for specific tasks.

  2. Collaborative Communication: Communication was key to our team's success. We utilized Discord and Google Meet for real-time discussions, team meetings and daily stand-up reports. Daily stand-ups allowed each team member to share their progress, identify any blockers and coordinate efforts effectively. In addition, we utilized Telegram for quick and immediate communication, ensuring swift responses and addressing any urgent queries that arose during development.

  3. Version Control with Git: We followed the Gitflow workflow to manage version control. The project repository had a main branch for stable releases and a develop branch for ongoing development. For each task, team members created feature branches from the develop branch, worked on the changes and submitted pull requests for code review.

  4. Code Review and Collaboration: Pull requests were an essential part of our development process. Each pull request underwent a thorough code review by team members before merging into the develop branch. This practice ensured code quality, consistency and adherence to project standards.

  5. Husky for Git Hooks: To maintain code quality and ensure a consistent codebase, we utilized Husky, a Git hook manager. With Husky, we automated tasks such as code formatting, linting and running tests before each commit and push. This ensured that only clean and valid code was added to the repository.

Testing

We utilized Just as our primary testing framework to ensure the reliability and stability of our e Commerce application.

We are proud to report that approximately 35% of our application code is covered by unit tests. This substantial test coverage allows us to identify and address potential issues early in the development process, resulting in a smoother user experience and reduced chances of regressions.

Contributing

Authors