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.
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.
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.
git clone https://github.com/shchegolenkov/rs-flowershop
.npm install
.npm start
.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.
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.
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.
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.
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.
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.
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.