Open Source E-Commerce Platform
Trishop is a free and open-source e-commerce platform for business units who want to find customers and sell their own products online. This platform is different from platforms such as Shopee, Tokopedia or the like which use a multi-role user system where users can register as buyers and sellers at the same time. This platform is meant for only one seller.
Trishop equipped with features:
- Safe typed Next.js 12 (React 18) with Typescript + Eslint + Prettier best practices β‘
- E2E testing with Cypress + Cypress workflows β
- UI components documentation with Storybook and deployed to Chromatic πΈ
- Database using MongoDB and Mongoose ODM π
- File storage using Cloudinary πΎ
- Authentication using JWT inside of cookie π
- Role-based authorisation:
[USER, ADMIN]
for now π - Form validation with Formik and Yup β¨
- Customer cart and wishlist with React Context (to be replaced by redux) π
- Custom API routes middleware validation π
- Review product β
- Report product reviews for review that indicated as spam / inappropriate words π«
- Product coupon code π©βπ»
- Customer dashboard to monitor orders that have been purchased (COMING SOON) π΅οΈββοΈ
- Admin dashboard, includes CRUD for User, Product, Coupon, Report (monitor customer orders status, charts - COMING SOON) π
- SEO-friendly π
- and much more...
Service | Description |
---|---|
vercel | Next.js Hosting |
cloudinary | File Storage Solution |
mongodb | NoSQL Database |
chromatic | Storybook Hosting |
cypress | E2E Testing |
midtrans | Payment Gateway (coming soon) |
Show me some demo images!
To run this project locally, follow these simple steps:
- Clone repo
- Run
yarn install
ornpm install
- Run
yarn dev
ornpm run dev
to run Next.js frontend and backend in port3000
Notes:
- Backend API is in
/pages/api/v1
folder - Run
yarn storybook
to run Storybook in port6006
Trishop web is open for contributions, whether it's a contribution to project functionality or in the form of documentation. I recommend you start by creating a new issue or join the Discord community so I can know in advance what you want to add/work on so that the project can be more coordinated and what we are working on will not collide with each other.
Please read CONTRIBUTING.md to know more about the details. (NOT YET UPDATED - IF YOU WANT TO BE A CONTRIBUTORS PLEASE LET ME KNOW IN DISCORD)
Made with the aim that all participants or contributors in this project are free from all forms of discrimination, humiliation, threats, violence, or the like.
Please read CODE_OF_CONDUCT.md to know more about the details.
Used for tracking minor, major updates and breaking changes to projects.
Please read CHANGELOG.md to know more about the details.