Kdshop is an e-commerce platform I built for a client. My first real world application 😊.
Features
- custom CMS using MongoDB
- Username password authentication
- Facebook and Google third-party authentication
- Bot prevention using Google captcha
- Responsive ( optimized for mobile )
- User roles ( user, seller, admin )
- Facebook Automated update on item submission ( seller account).
- Ahead of time Facebook scheduling of post of shop state.
- Pagination
- Bot for dynamic user interaction
- Full text search
- Service worker ( PWA )
some insight
Incrementat Static Generation ( ISR)
Next.js made use of Next js features to furnish an app with optimal performances. I opted for incremental static generation ( ISG) on all pages with predictable content ( landing page, Item presentation page). ISG allowed getting a fast application that uses few resources and reduces cost.
Service worker
KdShop uses a service worker to optimize page load time and satisfies progressive web app (PWA) specifications. Thus, Kdshop is a modern hybrid app that can be used natively on any device.
Responsive images
Responsive images are a must-have in modern web applications. When dealing with user-generated content, image responsiveness can be difficult. In KdShop, dynamically sized images are generated using Cloudinary APIs. All images are stored on Cloudinary; only the minimal images are delivered which minimizes the load times for mobile devices.
Conclusion
Wrapping up, I learned a lot through this project. Something worked well while others didn't. Through this trial and error process, I learned a lot. I became a better software engineer. More importantly, I could reach the goal I had in mind when writing KdShop : Performance
Live application ( Demo )
Normal account :
username: demo_user
password: password
Seller account :
username: demo_seller
password: password
Associated Facebook Page URL: Kdshop test facebook page
KdShop tour
NOTE : This app was meant for a french audience. This version has been manually translated, I apologize for any text left intact during translation