satnaing / next-bookstore

An online bookstore developed using NextJS 13 with appDir and StrapiCMS. (Still in Beta)

Home Page:https://nextbookstore.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Next Bookstore (Beta)

Next Bookstore by Sat Naing

An e-commerce project for an online bookstore developed using NextJS 13 and its experimental appDir. Frontend UI is crafted with radix-ui and TailwindCSS. To manage server and client state, TanStack Query and Zustand are used respectively. StrapiCMS serves as the backend for this project.

I designed the entire UI/UX using Figma and created the database design myself. Additionally, I developed this web application from scratch, handling all aspects of the development process.

Features ๐Ÿ”ฅ

  • Responsive Design
  • Search Functionality
  • Add To Cart
  • Add To Wishlist
  • SEO-friendly
  • Accessible

Features (Coming Soon ๐Ÿ‘€) ๐Ÿšง

The following are the features and functionalities to be added in the future.

  • Order Processing
  • Filtering Items
  • Better Pagination
  • Better Error Handling
  • Better Loading UI with Next 13
  • Accessibility enhancements
  • Security improvements
  • PWA? ๐Ÿคท๐Ÿปโ€โ™‚๏ธ
  • Testing? ๐Ÿคท๐Ÿปโ€โ™‚๏ธ

Technologies Used ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป

  • NextJS 13 with appDir - frontend development
  • TypeScript - type checking
  • Radix UI - accessible components
  • TailwindCSS - styling
  • Zustand - client state
  • Tanstack-Query & Axios - data fetching and server state
  • React-hook-form - form management
  • Eslint - linting
  • Figma - UI/UX
  • StrapiCMS - backend
  • Cloudinary - image hosting
  • Vercel & Railway - frontend & backend hosting

Installation ๐Ÿ”ฎ

To run the project locally, follow these steps:

Clone the repository:

git clone https://github.com/satnaing/next-bookstore.git

Install dependencies for frontend:

cd next-bookstore && npm install

Install dependencies for backend:

cd backend && npm install

Start the frontend: (at the root /)

npm run dev

Start the backend:

cd backend && npm run develop

Open your browser and go to http://localhost:3000

Important Note โš ๏ธ

I have intentionally committed the backend/.tmp/data.db file to the GitHub repository. This is because I did not want to set up a separate database for the project and connect it to my free backend hosting. Please note that this approach is not recommended for production-level applications. In a real-world scenario, I would use a more robust DBMS like PostgreSQL, with proper hosting and security configurations.

Photo Credits ๐Ÿ“ธ

Contributing โœจ

Contributions are welcome! If you find a bug or want to suggest an improvement, please open an issue or submit a pull request.

License ๐Ÿ“œ

This project is licensed under the MIT License. See the LICENSE file for details.

About

An online bookstore developed using NextJS 13 with appDir and StrapiCMS. (Still in Beta)

https://nextbookstore.vercel.app

License:MIT License


Languages

Language:TypeScript 92.4%Language:JavaScript 5.9%Language:CSS 1.6%Language:Shell 0.1%