1. Admin Module Functionality

Admin Login

Admin can log in using email/username and password.

Password stored securely in the database (hashed).

After login, admin can access the admin dashboard.

Admin can log out.

Fruit Category Management

Add new fruit categories (e.g., Citrus, Berries, Seasonal, Imported).

View list of all categories.

Edit category name.

Delete a category (only if no fruits are linked or handle with a warning).

Fruit Product Management

Add new fruits with details:

Name

Category (dropdown from existing categories)

Price per unit (e.g., per kg / per dozen)

Stock quantity

Short description

Simple image upload (store image path in database).

View list of all fruits with search and filter by category.

Edit fruit details (price, stock, description, category).

Activate / deactivate fruit (control visibility on user side instead of deleting).

Delete fruit (optional if you want permanent removal).

Order Management

View list of all orders placed by users.

See order details:

Customer name & contact

Delivery address

Ordered items (fruit name, quantity, price)

Total amount

Order date & time

Current order status.

Update order status:

Pending → Packed → Out for Delivery → Delivered / Cancelled.

Filter orders by status (Pending, Delivered, Cancelled).

Customer Management

View list of all registered users.

See basic user info (name, email, mobile number, total orders).

Option to deactivate a user account (user cannot log in if deactivated).

Basic Dashboard (Simple Stats)

Show total number of:

Registered users

Fruits available

Total orders

Pending orders.

All of this can be done with simple count queries (no advanced analytics).

2. User (Customer) Module Functionality

User Registration

New users can sign up with:

Name

Email

Mobile number

Password.

Check for unique email.

Store password securely (hashed) in the database.

User Login & Logout

Registered users can log in using email and password.

Maintain user session using token (JWT) or session logic.

User can log out.

User Profile Management

View and update:

Name

Mobile number

Default delivery address.

Change password (old password verification + new password).

Browse Fruits

View all available fruits with:

Name

Price

Category

Thumbnail image

Short description.

Filter by category.

Search fruits by name (simple text search on frontend/backend).

View Fruit Details

On clicking a fruit, user can see:

Full image

Detailed description

Price per unit

Available stock (optional display)

Add to Cart button.

Shopping Cart

Add fruits to cart from listing or detail page.

View cart with:

Fruit name

Unit price

Quantity (user can increase/decrease)

Item subtotal.

Update quantity of each item.

Remove fruit from cart.

View cart total amount.

Place Order (Checkout)

User selects:

Delivery address (from profile or enters a new one).

Review order summary: items + total amount.

Confirm order (you can keep Cash on Delivery only, no payment gateway).

After confirmation:

Order stored in database

Cart is cleared

Order status starts as Pending.

Order History

View list of all past orders.

For each order, show:

Order ID

Date & time

Total amount

Current status (Pending / Packed / Out for Delivery / Delivered / Cancelled).

Click on an order to see full details (items, quantities, etc.).