Paperbound Pavilion is an online bookstore where customers can buy and review their favorite books. The system allows the users to easily find and order books. They have the option to pay both online and with cash on delivery. The platform also allows users to rate and review different books.
Users can sign in to their accounts using their registered email address and password. They'll enter their email and password in designated fields and may have the option to stay logged in for convenience.
New users can create accounts by providing a username, email, and password. They may also fill in optional fields like their full name or date of birth. After filling out the form, they'll typically need to verify their email address to complete the registration process.
Users can log out of their accounts, which clears their session data and effectively signs them out of the platform. After logging out, they're usually redirected to the homepage or login page.
The homepage features a section showcasing products that are top sellers. These products are displayed in a visually appealing manner, often with images, titles, and prices. Users can scroll through the list and may have options to filter or sort the bestsellers based on different criteria.
Another section highlights items or content that are currently trending or highly popular among users. This section typically includes thumbnails or previews of the popular items, along with their titles and possibly ratings. The content shown here may be personalized based on the user's interests or browsing history.
Users can view and manage their profile information from the dashboard. This includes details such as their username, email address, and any additional information they've provided during registration.
The dashboard displays a history of the user's past orders, including details such as order dates, items purchased, and order statuses.
Users can manage their shipping and billing addresses from the dashboard. They can add new addresses, edit existing ones, and delete outdated ones.
Users can view and manage any reviews they've submitted for products on the platform. They can edit or delete their reviews as needed.
- Name: Users have the option to update their displayed name on the platform.
- Email: Users can change their email address associated with their account.
- Phone No: Users can add or update their phone number in their profile information.
- Password: Users can update their account password for improved security.
Users can add books or other items to their cart while browsing the platform. This allows them to gather items they're interested in purchasing before proceeding to checkout.
Users can remove items from their cart if they no longer wish to purchase them. This gives users control over the contents of their cart before finalizing their order.
- Users are prompted to select from previously used addresses for shipping.
- Users have the option to add a new address for shipping if needed.
Users can make payments online using bank transfers or mobile financial services like BKash.
Users have the option to pay for their orders with cash upon delivery.
Once an order is confirmed, the system automatically sends an email notification to the user with details of their order and confirmation.
Users can provide ratings and comments for books they have purchased or read, allowing them to share their opinions and experiences with other users.
- Price range.
- Publication date range.
- Author name.
- Book name.
- Book genre.
- Book language.
- Publisher name.
Admins have the ability to perform CRUD operations (Create, Read, Update, Delete) on book listings, allowing them to manage the inventory of available books.
Admins can view, manage, and update customer orders, including order statuses and tracking information.
Admins have control over user accounts and can perform CRUD operations as needed, such as creating new accounts, updating account details, and deleting accounts if necessary.
The platform supports internationalization, allowing users to view content in different languages and formats based on their preferences.
- Python
- Docker
- Poetry
- Node
- Clone
git clone https://github.com/devyneX/paperbound-pavilion.git
- Run db and redis
make run-dependencies
- Update
make update
- Install frontend dependencies
npm install
- Run this in the terminal
npm run tailwind
while you do development to compile TailwindCSS on demand.
- Run server
make run-server
- Run Celery worker
make run-celery
- Pull
- Run
make update
- Run
make lint
To add python package with poetry
make add-lib package_name
To add dev python package with poetry
make add-lib-dev package_name
- Run
make translations
- Inherit models from
src.core.models.BaseModel
- Templates to be extend from
src/core/templates/_base.html
- base template without navbar
src/core/templates/base.html
- base template with navbar
src/store_admin/templates/admin_base.html
- admin base template
- Templates to include
src/core/templates/_form.html
- prebuilt form
- include as
{% include '_form.py' with submit_text="your-custom-submit-text" %}
src/core/templates/form.html
- prebuilt form with form_title
- include as
{% include 'form.py' with form_title="your-custom-form-title" submit_text="your-custom-submit-text" %}
- Create a new branch
- Make changes
- Push changes
- Create a PR