Git Product home page Git Product logo

greenshop's Introduction

Greenshop ๐ŸŒฟ

General Overview ๐Ÿ›๏ธ

Welcome to Greenshop, your digital haven for all things green! ๐Ÿชด

Our Mission ๐ŸŒธ

At Greenshop, we're on a mission to cultivate a greener, more vibrant world, one plant at a time. Our curated collection features a diverse array of potted plants, seeds, soil, and accessories, meticulously selected to cater to the needs and desires of both novice gardeners and seasoned green thumbs alike. Whether you're looking to transform your living space into a lush oasis or embark on a journey of cultivating your own botanical wonders, Greenshop has everything you need to bring your green dreams to life.

Our modern and minimalist website offers a sleek and intuitive shopping experience, designed to delight and inspire. From our clean and uncluttered design to our seamless navigation and user-friendly interface, we're committed to making your shopping experience as effortless and enjoyable as possible.

Key Features of Greenshop Include ๐Ÿ—๏ธ

๐Ÿ”Ž Comprehensive Product Selection: Explore our extensive catalog of potted plants, seeds, soil, and gardening essentials, handpicked to ensure the highest quality and variety.

๐ŸŽจ Seamless UI/UX: Enjoy a cohesive and engaging user experience with a beautifully crafted interface that prioritizes ease of use and accessibility.

๐Ÿงญ User-friendly Navigation: Our intuitive navigation system makes it easy for you to find the plants, seeds, soil, and accessories you need.

๐Ÿงฉ Elegance and Functionality: Our intuitive design and thoughtful features make it easy to shop for plants, seeds, soil, and accessories.

๐Ÿ–ผ๏ธ Responsive Design: Whether you're browsing on a desktop, tablet, or smartphone, our website adapts seamlessly to provide a visually stunning and immersive experience on any device.

Technical Stack ๐Ÿ’ป

in our project we used the following technologies:

  • Frontend: Utilizes Typescript, HTML, SASS, and modern-normalize to craft a dynamic and engaging user interface ๐ŸŽจ
  • Backend: Supported by CommerceTools, a leading provider of commerce solutions, offering a robust and scalable platform for creating immersive digital commerce experiences ๐ŸŒ
  • CI/CD: Integrates GitHub Actions and Netlify for continuous integration and deployment ๐Ÿš€
  • Deployment: Hosted on Netlify, enabling efficient and hassle-free deployment of the application ๐ŸŒŸ
  • Code Quality: Ensured code quality through rigorous checks by Husky, Prettier, ESLint, Perfectionist, Stylelint, SonarLint, and EditorConfig, maintaining consistency and best practices throughout the codebase ๐Ÿถ
  • Testing: Thorough testing conducted with Vitest, Mock Service Worker, and Sinon.js, ensuring the reliability and robustness of the application's functionalities โšก
  • Bundling: Employs Vite as the bundler, ensuring swift development server startup time and seamless module replacement ๐ŸŒณ
  • Additional Features and Libraries: Plop for generating components from a template, Hammer.js for touch interactions, js-cookie for cookie management, noUiSlider for range sliders, Swiper for image carousel, and postcode-validator for address validation ๐Ÿ“ฆ
  • Project's Architecture: Carefully designed and implemented Feature-Sliced Design for efficient, scalable, and maintainable development ๐ŸŒ

How to Run the Project Locally โš™๏ธ

to run the project locally, you can follow the following steps:

  • Clone the repository: git clone https://github.com/stardustmeg/greenshop.git
  • Navigate to the project directory: cd greenshop
  • Install dependencies: npm install
  • Run the project: npm run dev

Available Scripts ๐Ÿ“‘

you can run the following scripts in the project directory:

  • npm run dev: Initiates the Vite development server.
  • npm run build: Transpiles TypeScript files using TypeScript compiler and builds the project using Vite.
  • npm run preview: Launches a production server to preview the project built with Vite.
  • npm run format: Applies code formatting using Prettier.
  • npm run ci:format: Checks code formatting compliance using Prettier.
  • npm run typecheck: Performs TypeScript type checking without emitting any files.
  • npm run lint: Lints the codebase using ESLint.
  • npm run lint:fix: Fixes linting errors automatically using ESLint for TypeScript files.
  • npm run lint-styles: Lints SCSS stylesheets using Stylelint.
  • npm run prepare: Sets up Husky for managing git hooks.
  • npm run test: Runs tests using Vitest.
  • npm run test-ui: Runs tests in the browser using Vitest.
  • npm run coverage: Runs tests and generates a code coverage report using Vitest.
  • npm run generate: Generates a new component using Plop.

Contact us ๐Ÿ“ฉ

  • ๐Ÿง™โ€โ™€๏ธ Margarita Golubeva (my GitHub: stardustmeg)
  • ๐Ÿง™ Maxim Zabaluev (my GitHub: Kleostro)
  • ๐Ÿง™โ€โ™€๏ธ Yuliya Kursevich (my GitHub: YulikK)

greenshop's People

Contributors

stardustmeg avatar kleostro avatar yulikk avatar

Stargazers

fluffymuffin avatar Irina Aleksandrova avatar  avatar  avatar

Watchers

 avatar

Forkers

kleostro

greenshop's Issues

[sprint_1] Issue RSS-ECOMM-1_03: Invite team members and mentor (4 points) ๐Ÿค

Issue RSS-ECOMM-1_03: Invite team members and mentor (4 points) ๐Ÿค

Description ๐Ÿ“

Invite all team members and the mentor as collaborators, ensuring everyone has access to contribute to the repository. Collaboration is crucial for the project's success, and this task aims to make sure everyone can work together efficiently. ๐Ÿ’ช

Acceptance Criteria ๐Ÿ“š

  • All team members and the mentor are invited as collaborators on the GitHub repository. ๐Ÿ’Œ
  • Each team member and the mentor can access and contribute to the repository. ๐Ÿ’ป

[sprint_1] Issue RSS-ECOMM-1_17: Update README with project description (10 points) ๐Ÿ“

Issue RSS-ECOMM-1_17: Update README with project description (10 points) ๐Ÿ“

Description ๐Ÿ—‚๏ธ

Update the README file in the repository, providing a comprehensive description of the project, its purpose, and the technology stack used. ๐Ÿ”„๐Ÿ’ก๐Ÿ› ๏ธ

Acceptance Criteria ๐ŸŽฏ

  • The README file contains a comprehensive description of the project and its purpose. ๐Ÿ“„โœ…
  • The technology stack used is described in the README. ๐Ÿงช๐Ÿ—ƒ๏ธ

[sprint_2] Issue RSS-ECOMM-2_04: Implement error handling for failed authentication attempts using CommerceTools ๐Ÿšซ

Description

Implement error handling for failed authentication attempts due to invalid login credentials when using the CommerceTools authentication service. Display user-friendly error messages to inform the user of the issue and guide them on how to proceed.

Failed Authentication Error Handling Tasks ๐Ÿšง

  • Determine how CommerceTools responds to authentication errors, such as incorrect email addresses or passwords (e.g., specific error codes or messages in the API response).
  • Implement a function or module in the application to process and understand the error responses from the CommerceTools authentication service.
  • Map the error responses from the CommerceTools API to user-friendly error messages that can be displayed in the login form.
  • Ensure that the error messages are displayed in a consistent and user-friendly manner, as described in Issue RSS-ECOMM-2_02.

Visual Implementation Ideas ๐Ÿ’ก

  • Display error messages directly below the respective input field (email, password) that caused the error.
  • Highlight the input field in red to draw the user's attention.
  • Use intuitive icons (e.g., a warning triangle) next to the error message to enhance the visibility.
  • Ensure error messages disappear once the user corrects the input or starts typing in the respective field.

Acceptance Criteria โœ…

  • Clear error messages are shown when authentication fails due to incorrect email or password.
  • Error messages are user-friendly and provide guidance on how to proceed.
  • No sensitive information is exposed to the user in the error messages.
  • The application handles CommerceTools authentication errors properly.

As Bon Jovi said in their song, "It's my life. It's now or never. I ain't gonna live forever. I just want to live while I'm alive." So let's make sure our users feel alive with a smooth and secure login process! ๐Ÿค˜๐ŸŽธ

[sprint_1] Issue RSS-ECOMM-1_02: Set up folder structure (10 points) ๐Ÿ“

Issue RSS-ECOMM-1_02: Set up folder structure (10 points) ๐Ÿ“

Description ๐Ÿ“

Set up a clear and organized folder structure within the repository, ensuring a maintainable and scalable codebase. By organizing the codebase properly, it will be easier for team members to navigate and contribute code efficiently. ๐Ÿงญ

Acceptance Criteria ๐Ÿ“š

  • There is a well-defined folder structure for different components, features, and assets. ๐Ÿ“‚
  • The folder structure allows for easy navigation and identification of the project's different parts. ๐Ÿ“

[sprint 1] Add CI pipeline

  • Implement continuous integration pipeline to check formatting on opening PR ๐ŸŽจ
  • Implement automatic review request from the rest of the team on opening Pull Requests ๐Ÿ“‚

[sprint_1] Issue RSS-ECOMM-1_07: Set up CommerceTools API client (15 points) ๐Ÿ› ๏ธ

Issue RSS-ECOMM-1_07: Set up CommerceTools API client (15 points) ๐Ÿ› ๏ธ

Description ๐Ÿ“

Create the API client for CommerceTools, enabling access to the platform's APIs and managing permissions and scopes required for the project. ๐Ÿ”‘

Acceptance Criteria ๐Ÿ“š

  • The API client is created for CommerceTools with the required permissions and scopes. โœ”๏ธ
  • The API client enables the project to access the platform's APIs for integration. ๐Ÿ”„

[sprint_2] Issue RSS-ECOMM-2_07: Handle Authentication Token ๐ŸŽซ

Description

Obtain the authentication token securely after a successful login attempt by sending a request to the token endpoint (e.g., https://auth.europe-west1.gcp.commercetools.com/oauth/project_key/customers/token), allowing for seamless user authentication across the application, but do not save it.

Acceptance Criteria โœ”๏ธ

  • The authentication token is obtained from the token endpoint after a successful login attempt.
  • The token is used for subsequent requests that require authentication.

Remember the wisdom of the classic Queen track, "I want to break free!" When it comes to our authentication token, we break free from the norm. We don't save it - we're rebels with a cause! ๐ŸŽต๐Ÿค˜

[spring_1] 2. Task Board Setup (Trello, Jira, etc.) (14 points) ๐Ÿ“‹

  1. Task Board Setup (Trello, Jira, etc.) (14 points) ๐Ÿ“‹
  • (6 points) Create a project task board using a project management tool (e.g., Trello or Jira), organizing tasks into lists or columns corresponding to their status (e.g., To Do, In Progress, Done). RSS-ECOMM-1_04 โœ”๏ธ
    #9

  • (5 points) Break down project tasks into smaller, manageable subtasks and assign them to team members, ensuring a clear delegation of responsibilities. RSS-ECOMM-1_05 ๐Ÿงฉ
    #10

  • (3 points) Share the task board with the team members and the mentor, ensuring everyone can track progress and update the status of their tasks. RSS-ECOMM-1_18 ๐Ÿค
    #11

[sprint_1] 1. Repository Setup (29 points) ๐Ÿง

  1. Repository Setup (29 points) ๐Ÿง
  • (10 points) Create a GitHub repository for the project, complete with a README file, .gitignore, and necessary dependencies. RSS-ECOMM-1_01 ๐Ÿ“š
    #4
    #35

  • (10 points) Set up a clear and organized folder structure within the repository, ensuring a maintainable and scalable codebase. RSS-ECOMM-1_02 ๐Ÿ—๏ธ
    #5
    #51

  • (4 points) Invite all team members and the mentor as collaborators, ensuring everyone has access to contribute to the repository. RSS-ECOMM-1_03 ๐Ÿ‘ฅ
    #6

  • (5 points) Create a pull request template with a clear structure for describing proposed changes and the rationale behind them. RSS-ECOMM-1_21 ๐Ÿ“
    #7
    #50

[sprint_1] 4. Development Environment Configuration (43 points) โš™๏ธ

  1. Development Environment Configuration (43 points) โš™๏ธ
  • (10 points) Set up and configure a bundler (e.g., Webpack, Vite, Parcel, or other) for the project, supporting both development and production build modes. RSS-ECOMM-1_08 ๐Ÿ“ฆ
    #16
    #36

  • (5 points) Configure TypeScript to enforce strong typing and improve code quality throughout the project. RSS-ECOMM-1_09 ๐Ÿงฎ
    #17
    #36

  • (5 points) Set up ESLint to enforce consistent coding styles and identify potential issues in the codebase. RSS-ECOMM-1_10 ๐Ÿ“
    #18
    #37

  • (5 points) Configure Prettier to automatically format code, ensuring a consistent and readable code style. RSS-ECOMM-1_11 โœจ
    #19
    #38

  • (8 points) Initialize Husky to manage Git hooks, automating tasks such as code formatting and linting checks during the commit process. RSS-ECOMM-1_12 ๐Ÿ•
    #20
    #40

  • (10 points) Install and configure Jest as the testing framework for the project, enabling comprehensive testing of code functionality. RSS-ECOMM-1_13 ๐Ÿงช
    #21
    #47
    #66

[sprint_2] Issue RSS-ECOMM-2_06: Redirect logged-in users to the main page from the login page ๐Ÿš€

Description

Redirect users who are already logged into the application to the main page if they attempt to access the login page. Ensure a smooth and seamless user experience by properly checking the user's authentication state, updating the URL in the address bar, and handling navigation during the redirection process.

Redirection and Authentication State Checking Tasks ๐Ÿง

  • Implement a function, service, or route guard in your application that checks whether a user is already authenticated when they attempt to visit the login page.
  • If the user is authenticated, redirect them to the main page, preventing access to the login page while they are logged in.
  • Update the URL in the address bar to reflect the correct URL for the main page (e.g., "/main") for authenticated users redirected from the login page.
  • Ensure that the browser's navigation (history) is updated correctly when redirecting authenticated users to the main page.

Acceptance Criteria โœ”๏ธ

  • Authenticated users who attempt to visit the login page are automatically redirected to the main page.
  • The URL in the address bar is changed to the main page's URL for authenticated users redirected from the login page.
  • Redirection maintains the user's authentication state during the process.
  • Proper handling of navigation and user experience during redirection, including updating browser history.

In the words of AC/DC, "For those about to rock, we salute you!" Let's ensure that our authenticated users are always on the rockin' main page and not back in the login page crowd! ๐Ÿค˜๐ŸŽธ

[sprint_1] Issue RSS-ECOMM-1_06: Set up CommerceTools project (15 points) ๐Ÿ› ๏ธ

Issue RSS-ECOMM-1_06: Set up CommerceTools project (15 points) ๐Ÿ› ๏ธ

Description ๐Ÿ“

Create the project in CommerceTools, setting up the necessary authorization, currencies, languages, and other configurations in the Merchant Center. ๐ŸŒ

Acceptance Criteria ๐Ÿ“š

  • A new CommerceTools project is created with the correct settings. โœ”๏ธ
  • Currencies, languages, and other configurations are properly set up in the Merchant Center. ๐ŸŒ

[sprint_1] Issue RSS-ECOMM-1_13: Install and configure Jest (10 points) ๐Ÿ˜„

Issue RSS-ECOMM-1_13: Install and configure Jest (10 points) ๐Ÿ˜„

Description ๐Ÿ“

Install and configure Jest as the testing framework for the project, enabling comprehensive testing of code functionality. ๐Ÿ”ง๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿงช

Acceptance Criteria ๐Ÿ“š

  • Jest is installed and configured as the testing framework for the project. โœ”๏ธ
  • The project allows for comprehensive testing of code functionality with Jest. โœ”๏ธ๐Ÿ”ฌ

[sprint_2] Issue RSS-ECOMM-2_02: Display clear error messages for validation issues ๐Ÿšจ

Description

Display clear error messages on the login form when validation issues are detected, such as an improperly formatted email address ๐Ÿ“ง or a weak password ๐Ÿ”‘. The error messages should follow specific display rules for a consistent and user-friendly experience.

Display Rules for Validation Error Messages ๐Ÿ“š

  • Error messages should appear next to the corresponding input field (e.g., either to the right, left, top, or bottom of the input field).
  • Error messages should be styled consistently (e.g., with a specific font, color, and size) across all input fields.
  • Error messages should not overlap other UI elements or obstruct any important information.
  • Error messages should disappear once the user corrects the invalid input and meets the validation criteria.
  • Error messages should be easily readable and visually distinct from other text on the page (e.g., by using a different color or font weight).

Acceptance Criteria โœ…

  • Clear error messages are shown next to the corresponding input field when validation fails.
  • Error messages are descriptive, explaining the specific validation issue.
  • Error messages follow the specified display rules for a consistent and user-friendly experience.
  • Error messages disappear when the user corrects the invalid input.

So team, let's take a leaf from Pink Floyd's book and remember - "All in all, it's just another brick in the wall." And every error message we solve is one less brick in our user's wall! Let's bring the wall down together! ๐ŸŽธ๐Ÿงฑ

[sprint_2] Issue RSS-ECOMM-2_03: Integrate login form with CommerceTools authorization service ๐Ÿ”’

Description

Integrate the login form with the CommerceTools authorization service to handle user authorization by submitting the email ๐Ÿ“ง and password ๐Ÿ”‘ provided by the user. Set up and configure the CommerceTools API to work with the application to manage user authorization securely ๐Ÿ”.

CommerceTools Integration Tasks ๐Ÿ› ๏ธ

  • Set up a CommerceTools project and configure the required API clients, scopes, and permissions for user authentication.
  • Implement a function or module in your application to communicate with the CommerceTools API to submit user email and password for authorization (authorization documentation).
  • Handle the authentication response from the CommerceTools API, which includes receiving the access token, refresh token, and user data upon successful login (Sign in response documentation).

Acceptance Criteria โœ…

  • CommerceTools authentication service is set up and configured for the project.
  • Login form communicates with the CommerceTools authentication service to sign in users by submitting email and password.
  • Application can successfully receive access token, refresh token, and user data from the CommerceTools API.

In the words of The Rolling Stones, "You can't always get what you want, but if you try sometimes, you might find, you get what you need." So let's get what we need by ensuring this integration is tight and secure! ๐Ÿ‘Š๐ŸŽถ

[sprint_1] Issue RSS-ECOMM-1_16: Create Jest test script (5 points) ๐Ÿ“œ

Issue RSS-ECOMM-1_16: Create Jest test script (5 points) ๐Ÿ“œ

Description ๐Ÿ—‚๏ธ

Create a script for running Jest tests, streamlining the process of executing tests and generating reports on test outcomes. ๐Ÿงชโš™๏ธ

Acceptance Criteria ๐ŸŽฏ

  • A script for running Jest tests is created. ๐Ÿ“„โœ…
  • The script streamlines the process of executing tests and generating test outcome reports. ๐Ÿš€๐Ÿ“Š

[sprint_1] Create initial database for API ๐ŸŒธ

๐ŸŒฑ Create an initial database of at least 10-20 items to be able to start working with the API. Including but not limited to:

  • 1-4 pictures for each item ๐Ÿ–ผ๏ธ
  • price ๐Ÿ’ต
  • SKU ๐Ÿช‡
  • title ๐ŸŒธ
  • short description โœ๏ธ
  • full description ๐Ÿ—’๏ธ
  • rating โญ
  • reviews (rating, text, date, username/anonymous - plant lover) ๐Ÿ––
  • size (small, medium, large, extra large) ๐Ÿ˜€
  • category (House Plants, Potted Plants, Small Plants, Big Plants, Seeds, Florarium, Succulent, Accessories, Pots) ๐Ÿชด
  • tags (Home, Garden, Plants, Seeds, on Sale, New, Sold Out) ๐Ÿก
  • plant care tab ๐Ÿ›
  • sale (percentage - optional) ๐Ÿ’ฏ

[sprint_1] Issue RSS-ECOMM-1_18: Share task board with team and mentor (3 points) ๐Ÿ“ฌ

Issue RSS-ECOMM-1_18: Share task board with team and mentor (3 points) ๐Ÿ“ฌ

Description ๐Ÿ—‚๏ธ

Share the task board with the team members and the mentor, ensuring everyone can track progress and update the status of their tasks. This action will help keep everyone in sync and maintain a clear understanding of the project's status. ๐Ÿ‘ฅ๐Ÿ”„๐Ÿ“Š

Acceptance Criteria ๐ŸŽฏ

  • The task board is shared with all team members and the mentor. ๐Ÿ“Œ๐Ÿ‘ฅ
  • Everyone has access to view and update the task board. ๐Ÿ‘€๐Ÿ“

[sprint_2] Create Product Database ๐ŸŒฑ

๐ŸŒฑ Create an initial database of at least 10-20 items to be able to start working with the API. Including but not limited to:

  • 1-4 pictures for each item ๐Ÿ–ผ๏ธ
  • price ๐Ÿ’ต
  • SKU ๐Ÿช‡
  • title ๐ŸŒธ
  • short description โœ๏ธ
  • full description ๐Ÿ—’๏ธ
  • rating โญ
  • reviews (rating, text, date, username/anonymous - plant lover) ๐Ÿ––
  • size (small, medium, large, extra large) ๐Ÿ˜€
  • category (House Plants, Potted Plants, Small Plants, Big Plants, Seeds, Florarium, Succulent, Accessories, Pots) ๐Ÿชด
  • tags (Home, Garden, Plants, Seeds, on Sale, New, Sold Out) ๐Ÿก
  • plant care tab ๐Ÿ›
  • sale (percentage - optional) ๐Ÿ’ฏ

[sprint_1] 5. Development Scripts (15 points) ๐Ÿ–Š๏ธ

  1. Development Scripts (15 points) ๐Ÿ–Š๏ธ
  • (5 points) Create a script for running ESLint across the codebase, enabling quick and efficient identification of coding style issues and potential errors. RSS-ECOMM-1_14 ๐Ÿž
    #23
    #39

  • (5 points) Create a script for running Prettier across the codebase, simplifying code formatting and ensuring uniform code style. RSS-ECOMM-1_15 ๐ŸŽจ
    #24
    #39

  • (5 points) Create a script for running Jest tests, streamlining the process of executing tests and generating reports on test outcomes. RSS-ECOMM-1_16 ๐Ÿงพ
    #25
    #47

[sprint_1] Issue RSS-ECOMM-1_01: Set up GitHub repository (10 points) ๐Ÿ—๏ธ

Issue RSS-ECOMM-1_01: Set up GitHub repository (10 points) ๐Ÿ—๏ธ

Description ๐Ÿ“

Create a GitHub repository for the project, complete with a README file, .gitignore, and necessary dependencies. This repository will serve as the central codebase for the project, allowing for collaboration and version control.

Acceptance Criteria ๐Ÿ“š

  • A new GitHub repository is created with the project name. ๐Ÿ“
  • A README file is initialized with a brief description of the project. ๐Ÿ“
  • A .gitignore file is added to exclude unnecessary files and directories. ๐Ÿšซ

Useful Links ๐Ÿ”—

[sprint_1] Issue RSS-ECOMM-1_19: Document scripts in README (5 points) ๐Ÿ“

Issue RSS-ECOMM-1_19: Document scripts in README (5 points) ๐Ÿ“

Description ๐Ÿ—‚๏ธ

Document all available scripts (e.g., for running ESLint, Prettier, and Jest tests) and their usage in the README file. This will help team members and other contributors to better understand and utilize the available scripts. ๐Ÿ› ๏ธ๐Ÿ‘ฅ

Acceptance Criteria ๐ŸŽฏ

  • All available scripts are documented in the README file. ๐Ÿ“šโœ…
  • Usage instructions for each script is provided. ๐Ÿ“–๐Ÿ‘

[sprint_1] 6. Comprehensive README (19 points) ๐Ÿ“

  1. Comprehensive README (19 points) ๐Ÿ“
  • (10 points) Add a thorough README file in the repository, describing the project, its purpose, and the technology stack used. RSS-ECOMM-1_17 ๐Ÿ“˜
    #27
    #55

  • (5 points) Clearly document all available scripts (e.g., for running ESLint, Prettier, and Jest tests) and their usage in the README file. RSS-ECOMM-1_19 ๐Ÿ“œ
    #28
    #55

  • (4 points) Provide detailed instructions for setting up and running the project locally, ensuring newcomers and contributors can quickly get started. RSS-ECOMM-1_20 ๐Ÿš€
    #29
    #55

[sprint_1] Issue RSS-ECOMM-1_12: Initialize Husky (8 points) ๐Ÿถ

Issue RSS-ECOMM-1_12: Initialize Husky (8 points) ๐Ÿถ

Description ๐Ÿ“

Initialize Husky to manage Git hooks, automating tasks such as code formatting and linting checks during the commit process. ๐Ÿ“โžก๏ธ๐Ÿ”Ž

Acceptance Criteria ๐Ÿ“š

  • Husky is initialized and integrated into the project. โœ”๏ธ
  • Git hooks are managed by Husky, automating code formatting and linting checks. โœ”๏ธ๐Ÿ”„

[sprint_1] Issue RSS-ECOMM-1_21: Create a pull request template (5 points) ๐Ÿ“

Issue RSS-ECOMM-1_21: Create a pull request template (5 points) ๐Ÿ“

Description ๐Ÿ—‚๏ธ

Create a pull request template with a clear structure for describing proposed changes and the rationale behind them. This template will help standardize pull request descriptions and make it easier to understand the purpose of each proposed change. ๐Ÿ”„๐ŸŽฏ

Acceptance Criteria ๐ŸŽฏ

  • A pull request template file is created and saved to the repository. ๐Ÿ’พโœ…
  • The template has a clear structure for describing proposed changes. ๐Ÿ—‚๏ธ๐Ÿ‘Œ
  • The template includes sections for providing the rationale behind the changes. ๐Ÿ’ญ๐Ÿ‘€

[sprint_1] 3. CommerceTools Project and API Client Setup (30 points) ๐Ÿ’ป

  1. CommerceTools Project and API Client Setup (30 points) ๐Ÿ’ป
  • (15 points) Create the project in CommerceTools, setting up the currencies, languages, and other configurations in the Merchant Center. RSS-ECOMM-1_06 ๐Ÿ’ผ
    #13

  • (15 points) Create the API client for CommerceTools, enabling access to the platform's APIs and managing permissions and scopes required for the project. RSS-ECOMM-1_07 ๐Ÿ”
    #14
    #102

[sprint_1] Issue RSS-ECOMM-1_05: Break down tasks and delegate responsibilities (5 points) ๐ŸŽฏ

Issue RSS-ECOMM-1_05: Break down tasks and delegate responsibilities (5 points) ๐ŸŽฏ

Description ๐Ÿ“

Break down project tasks into smaller, manageable subtasks and assign them to team members, ensuring a clear delegation of responsibilities. This process will help divide the workload evenly among team members and enable focused work on specific aspects of the project. ๐Ÿงฉ

Acceptance Criteria ๐Ÿ“š

  • Project tasks are broken down into smaller, manageable subtasks. ๐Ÿช“
  • Subtasks are assigned to team members based on their expertise and workload. ๐Ÿ“จ
  • Each team member has a clear understanding of their responsibilities. ๐Ÿง 

[sprint_1] Issue RSS-ECOMM-1_08: Configure bundler (10 points) ๐Ÿงฉ

Issue RSS-ECOMM-1_08: Configure bundler (10 points) ๐Ÿงฉ

Description ๐Ÿ“

Set up and configure a bundler (e.g., Webpack, Vite, Parcel, Rollup, or other) for the project, supporting both development and production build modes. ๐Ÿ’ป๐Ÿ”„

Acceptance Criteria ๐Ÿ“š

  • A bundler (e.g., Webpack, Vite, Parcel, Rollup, or other) is set up and integrated with the project. โœ”๏ธ
  • The bundler configuration supports both development and production build modes. ๐Ÿ› ๏ธ

Useful links to popular bundlers ๐Ÿ–‡๏ธ

[sprint_1] Issue RSS-ECOMM-1_15: Create Prettier script (5 points) ๐Ÿ“œ

Issue RSS-ECOMM-1_15: Create Prettier script (5 points) ๐Ÿ“œ

Description ๐Ÿ—‚๏ธ

Create a script for running Prettier across the codebase, simplifying code formatting and ensuring uniform code style. ๐Ÿ“๐Ÿ”ง

Acceptance Criteria ๐ŸŽฏ

  • A script for running Prettier is created. ๐Ÿ“„โœ…
  • The script simplifies code formatting and helps maintain a uniform code style across the project. ๐Ÿ”„๐Ÿ‘Œ

[sprint_2] ๐Ÿ–ฅ๏ธ Login Page Implementation

๐Ÿ–ฅ๏ธ Login Page Implementation (130 points - Total)

Requirements

๐Ÿ“ 1. Input Validation (40 points)

  • โ˜‘๏ธ (20 points) Implement client-side validation for the login form, including email and password fields. RSS-ECOMM-2_01
    #75
    #112

  • โŒ (20 points) Display clear error messages indicating any validation issues, such as an improperly formatted email. RSS-ECOMM-2_02
    #76
    #113

๐Ÿ”— 2. Integration with Authentication Service (45 points)

  • โ˜‘๏ธ (25 points) Integrate the login form with a chosen authentication service (CommerceTools) to handle user authentication. RSS-ECOMM-2_03
    #77
    #117

  • โŒ (20 points) Implement error handling for failed authentication attempts, such as incorrect email or password, and display user-friendly error messages. RSS-ECOMM-2_04
    #78
    #119

๐Ÿ”„ 3. Redirection (30 points)

  • ๐Ÿš€ (15 points) Redirect users to the application's main page upon successful login. RSS-ECOMM-2_05
    #79
    #119

  • ๐Ÿš€ (15 points) Redirect users who are already logged in to the main page if they try to access the login page. RSS-ECOMM-2_06
    #80
    #120

๐Ÿ”‘ 4. Handle Authentication Token (10 points)

โžก๏ธ 5. Navigation to Registration Page (5 points)

  • โ˜‘๏ธ (5 points) Add a button or link on the login page that allows users to navigate to the registration page. RSS-ECOMM-2_08
    #82
    #115

[sprint_2] Issue RSS-ECOMM-2_01: Implement client-side validation for login form ๐ŸŽฏ

Description

Implement client-side validation for the login form, including email ๐Ÿ“ง and password ๐Ÿ”‘ fields. Ensure that input validation checks are performed in real-time when the user enters their information.

Email Validation Rules ๐Ÿ“

  • Email address must be properly formatted (e.g., [email protected]).
  • Email address must not contain leading or trailing whitespace.
  • Email address must contain a domain name (e.g., http://example.com ).
  • Email address must contain an '@' symbol separating local part and domain name.

Password Validation Rules ๐Ÿ“

  • Password must be at least 8 characters long.
  • Password must contain at least one uppercase letter (A-Z).
  • Password must contain at least one lowercase letter (a-z).
  • Password must contain at least one digit (0-9).
  • (Optional) Password must contain at least one special character (e.g., !@#$%^&*).
  • Password must not contain leading or trailing whitespace.

Show/Hide Password Functionality ๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ

  • Provide a button or a checkbox to allow users to toggle the visibility of their password.
  • When this option is activated, users should be able to see their password in plaintext.
  • When this option is deactivated, the password should be replaced with asterisks or bullet points.

Acceptance Criteria โœ…

  • Email field validation checks for a properly formatted email address according to the specified rules.
  • Password field validation checks for meeting the length and complexity requirements.
  • Show/hide password functionality allows users to toggle password visibility.
  • Validation checks are performed as the user types.

Alright team, let's get ready to rock this code! Just remember, in the words of the legendary Queen, "We will, we will, rock you!" So let's get out there and rock this validation form! ๐ŸŽธ๐Ÿ”ฅ

[sprint_1] Issue RSS-ECOMM-1_14: Create ESLint script (5 points) ๐ŸŽฏ

Issue RSS-ECOMM-1_14: Create ESLint script (5 points) ๐ŸŽฏ

Description ๐Ÿ“

Create a script for running ESLint across the codebase, making it possible to quickly and efficiently identify code style issues and potential errors. ๐Ÿ’ก๐Ÿ”๐Ÿ’ป

Acceptance Criteria ๐Ÿ“š

  • A script for running ESLint is created. โœ…
  • The script enables quick and efficient identification of code style issues and errors. โœ…๐Ÿ‘จโ€๐Ÿ’ป๐Ÿš€

[sprint_2] Issue RSS-ECOMM-2_05: Redirect users to the main page upon successful login ๐ŸŽฏ

Description

Redirect users to the application's main page upon successful login, allowing them to access the main features and content of the application. The main page can contain simple text (e.g., "Main") or any other content to demonstrate that the user is successfully logged in. Ensure that the URL in the address bar is changed to the main page's URL, properly handling navigation and user experience during redirection.

URL Change and Redirection Tasks ๐Ÿ”€

  • Implement a function or module in your application that handles successful authentication by redirecting users from the login page to the main page.
  • Update the URL in the address bar to reflect the correct URL for the main page (e.g., "/main") upon successful login and redirection.
  • Ensure that the browser's navigation (history) is updated correctly when redirecting users to the main page, allowing them to use the back button to navigate to the previous page if necessary.
  • Make sure that the user's authentication state is preserved during the redirection process, allowing them to stay logged in when accessing the main page.

Acceptance Criteria โœ…

  • After successful authentication, users are redirected to the main page of the application, which contains simple text ("Main") or any other content.
  • The URL in the address bar is changed to the main page's URL upon redirection.
  • Proper handling of navigation and user experience during redirection, including browser history updates and preserving authentication state.

As the band Journey would say, "Don't stop believin'!" Let's guide our users to their main page destination like the faithful city boy on a midnight train going anywhere! ๐ŸŒƒ๐Ÿš‚

[sprint_1] Issue RSS-ECOMM-1_20: Add setup instructions to README (4 points) ๐Ÿ’ป

Issue RSS-ECOMM-1_20: Add setup instructions to README (4 points) ๐Ÿ’ป

Description ๐Ÿ—‚๏ธ

Provide detailed instructions for setting up and running the project locally in the README file. This will help newcomers and contributors get started quickly with setting up the project on their own machines. ๐Ÿƒโ€โ™€๏ธ๐Ÿ‘จโ€๐Ÿ’ป

Acceptance Criteria ๐ŸŽฏ

  • Step-by-step instructions for setting up and running the project locally are available in the README file. ๐Ÿš€โœ…
  • Instructions are clear and easy to follow. ๐Ÿ“–๐Ÿ‘

[sprint_1] Issue RSS-ECOMM-1_04: Set up project task board (6 points) ๐Ÿ“‹

Issue RSS-ECOMM-1_04: Set up project task board (6 points) ๐Ÿ“‹

Description ๐Ÿ“

Create a project task board using a project management tool (e.g., Trello or Jira), organizing tasks into lists or columns corresponding to their status (e.g., To Do, In Progress, Done). This task board will be the main reference for the team's progress and will help everyone stay up to date on the project's status. ๐Ÿ”„

Acceptance Criteria ๐Ÿ“š

  • A task board is created using a project management tool (e.g., Trello or Jira). ๐Ÿงฉ
  • The task board has lists or columns for various task statuses (e.g., To Do, In Progress, Done). ๐Ÿ—‚๏ธ
  • Relevant project tasks are added to the task board. โž•

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.