Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save nabily4e-dev/171c63b3cce7e6daf80aa72c75915e42 to your computer and use it in GitHub Desktop.
Save nabily4e-dev/171c63b3cce7e6daf80aa72c75915e42 to your computer and use it in GitHub Desktop.

Logo

Share for care 💕


Project Overview

The Student Store is a non-profit marketplace for students in Yemen to sell, buy, or borrow affordable used products like electronics, games, and study books. It aims to provide essential eCommerce experience and support for students.

Service providers and resellers can also offer their products and services at low prices, with a custom blog on the main website providing training materials for users. The platform includes sign-in and sign-up features for users to order products or services.

This project developed by the CodeForce team as part of the Re:Coded Frontend Web Development Bootcamp in Yemen.


Project Features

  • Authentication: Users can sign in and sign up to the platform using their email address and password. Users can also sign in using their Google account.
  • Internationalization: The platform supports both English and Arabic languages.
  • Responsive Design: The platform is responsive and can be viewed on mobile, tablet, and desktop devices.
  • Product Categories: Products are organized into categories to make it easier for users to find what they are looking for.
  • Product Search: Users can search for products by name or category.
  • Product Details: Users can view the details of a product, including its name, description, price, and seller.

Stack Used

Technologies

GitHub Actions Husky Commit Linter Committizen Prettier ESLint i18next Storybook Tailwind CSS Firebase React Next.js Node.js

Libraries

Jest next-sitemap clsx dompurify keen-slider Yup react-toastify

Installation

npm install -g commitizen     // Installs Commitizen globally (Commitizen is used to create Conventional Commits)

npm install                   // Installs the Node modules required for the project to run (this command is run in the root directory of the project)

npx husky install             // Installs Husky if it is not already installed (Husky is used to run the Prettier and ESLint tools before committing changes)
chmod ug+x .husky/*           // Gives Husky executable extension permissions (this command is run in the root directory of the project)

Development Process and Workflow

To contribute to this project, follow the steps below:

  1. Fork the repository and clone it to your local machine.
git clone https://github.com/your-username/student-store.git
  1. Install the necessary dependencies by running the following command in the root directory of the project:
npm install
  1. Create a new branch with a descriptive name for the feature or bug you are working on:
git checkout -b <branch-name>
  1. Make your changes to the code and commit them using the Commitizen tool and Conventional Commits. Use the following command to commit your changes:
git cz

This will prompt you to fill in the necessary details for your commit message.

  1. Push your changes to your forked repository:
git push origin <branch-name>
  1. Submit a pull request to the main repository. Make sure to describe your changes clearly and provide any necessary context.Once your pull request is approved, your changes will be merged into the main branch.

Note: Before committing your changes, make sure to run the Prettier and ESLint tools to ensure that your code follows the project's coding style guidelines. You can run these tools using the following commands:

npm run prettier
npm run lint

Challenges and Learnings from the Project

  • Abdulrahman Abdullah: I learned how to use Next.js and Tailwind CSS to build a responsive web application. I also learned how to use the i18next library to add internationalization to the application. I also learned how to use the Husky tool to run Prettier and ESLint before committing changes to the repository.
  • Abobakr Mahdi: I learned how to use Next.js and Tailwind CSS to build a responsive web application. I also learned how to use the i18next library to add internationalization to the application. I also learned how to use the Husky tool to run Prettier and ESLint before committing changes to the repository.
  • Marwan Bazghifan: I learned how to use Next.js and Tailwind CSS to build a responsive web application. I also learned how to use the i18next library to add internationalization to the application. I also learned how to use the Husky tool to run Prettier and ESLint before committing changes to the repository.
  • Mohammed Al-Qershi: I learned how to use Next.js and Tailwind CSS to build a responsive web application. I also learned how to use the i18next library to add internationalization to the application. I also learned how to use the Husky tool to run Prettier and ESLint before committing changes to the repository.
  • Nabil Al Ashbat: I learned how to use Next.js and Tailwind CSS to build a responsive web application. I also learned how to use the i18next library to add internationalization to the application. I also learned how to use the Husky tool to run Prettier and ESLint before committing changes to the repository. I also learned how to use the Storybook tool to build a component library for the application. I also learned how to use the Commit Linter tool to enforce the Conventional Commits specification. I also learned how to use the Commitizen tool to create Conventional Commits.

Project Screenshots

Home Page Home Page (Arabic) Login Page Login Page (Arabic) Register Page Register Page (Arabic) Product Page Product Page (Arabic) Cart Page Cart Page (Arabic) Checkout Page Checkout Page (Arabic)

Project Prototype

Student Store

Project Team

Name Role Email
Abdulrahman Aljohani CodeForce member
Emily Nguyen //
John Smith //
Maria Hernandez //

Abdulrahman Abdullah is the team leader and is responsible for managing the project. Emily Nguyen is the designer and is responsible for creating the user interface and visual design of the project. John Smith is the developer and is responsible for writing the code and implementing the features of the project. Maria Hernandez is the tester and is responsible for ensuring the quality and functionality of the project. Together, this team will work collaboratively to create a successful project.

Project License

License: MIT

This project is licensed under the terms of the MIT license.

Project Status

Project Status: Inactive

This project is currently inactive.

Project Version

Version

This project is currently version 1.0.0.

Project Dependencies

Dependencies

This project currently has 3 dependencies.

Project Dev Dependencies

Dev Dependencies

This project currently has 3 dev dependencies.

Project Install Size

Install Size

This project currently has an install size of 3.

Project Issues

Issues

This project currently has 3 issues.

Project Pull Requests

Pull Requests

This project currently has 3 pull requests.

Project Commits

Commits

This project currently has 3 commits.

Project Branches

Branches

This project currently has 3 branches.

Project Releases

Releases

This project currently has 3 releases.

Project Tags

Tags

This project currently has 3 tags.

Future Improvements

  • Future Improvement 1
  • Future Improvement 2
  • Future Improvement 3

Project References

Project Resources

Project Links

Credits and Acknowledgements

Thank you to Re:Coded for this opportunity, thank you to my mentors and instructors for their guidance and feedback, thank you to my teammates for their collaboration and support, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment