An open API service indexing awesome lists of open source software.

https://github.com/rahimuj570/authentitrack

This is a javaEE project which will solve the fake product confusions among market and users.
https://github.com/rahimuj570/authentitrack

Last synced: 4 months ago
JSON representation

This is a javaEE project which will solve the fake product confusions among market and users.

Awesome Lists containing this project

README

          

# ๐Ÿญ Product Authenticity Verification System (AuthentiTrack)

![JavaEE](https://img.shields.io/badge/JavaEE-Enterprise-blue?logo=java&logoColor=white)
![Oracle](https://img.shields.io/badge/Database-Oracle-red?logo=oracle&logoColor=white)
![QRCode](https://img.shields.io/badge/QR--Code-Verification-green)

A **JavaEE + Oracle Database** based web application built exclusively for **manufacturing companies** to fight against **fake and cloned products**.
The system generates **unique QR codes** for every product batch and provides customers with a secure way to verify authenticity, check product details, and submit feedback.

---

## ๐Ÿš€ Features

- **Manufacturer Portal**
- Add products with details (name, description, expiry date, etc.)
- Generate **batches** with expiry date and other metadata
- Automatically generate **unique QR codes** for each product
- Monitor authenticity checks and feedback reports
- Mark unsafe batches as **inactive/recall from market**

- **Customer Portal**
- Scratch & scan QR code to verify product authenticity
- View details: batch number, expiry date, authenticity status, scan history
- Detect if scanned before โ†’ prevents duplicate usage
- See if the batch is **active or recalled**
- Submit **feedback or complaint** (within 30 days of scan)
- Manufacturer can view and contact customer if necessary

- **Security**
- Scratch-before-scan mechanism and watching scan history prevents duplicate QR scans
- Real-time verification against database
- Role-based access (Manufacturer, Customer)

---

## ๐Ÿ“‚ Project Structure

```

AuthentiTrack/
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ src
โ””โ”€โ”€ main
โ”œโ”€โ”€ java
โ”‚ย ย  โ”œโ”€โ”€ controllers
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ AddProductController.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ChangePassword.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ DiscontinueProduct.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ GenerateProduction.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ GetAllNotification.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ GetAllProduction.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ LoginController.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ RejectBatch.java
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ SendReport.java
โ”‚ย ย  โ”œโ”€โ”€ dao
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ BatchDao.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ NotificationDao.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ProductDao.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ProductionDao.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ UserReportDao.java
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ UsersDao.java
โ”‚ย ย  โ”œโ”€โ”€ entities
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Batch.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Notification.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Produce.java
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Product.java
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ User.java
โ”‚ย ย  โ””โ”€โ”€ helper
โ”‚ย ย  โ”œโ”€โ”€ ConnectionProvider.java
โ”‚ย ย  โ”œโ”€โ”€ LoginFilter.java
โ”‚ย ย  โ”œโ”€โ”€ ScanDetailsPOJO.java
โ”‚ย ย  โ””โ”€โ”€ UserReportPOJO.java
โ””โ”€โ”€ webapp
โ”œโ”€โ”€ fake.jsp
โ”œโ”€โ”€ index.jsp
โ”œโ”€โ”€ manufacturer
โ”‚ย ย  โ”œโ”€โ”€ add_new_product.jsp
โ”‚ย ย  โ”œโ”€โ”€ batches.jsp
โ”‚ย ย  โ”œโ”€โ”€ footer.jsp
โ”‚ย ย  โ”œโ”€โ”€ generate_product.jsp
โ”‚ย ย  โ”œโ”€โ”€ logout.jsp
โ”‚ย ย  โ”œโ”€โ”€ nav.jsp
โ”‚ย ย  โ”œโ”€โ”€ products.jsp
โ”‚ย ย  โ”œโ”€โ”€ qr_codes.jsp
โ”‚ย ย  โ”œโ”€โ”€ show_report.jsp
โ”‚ย ย  โ””โ”€โ”€ style.css
โ”œโ”€โ”€ META-INF
โ”‚ย ย  โ””โ”€โ”€ MANIFEST.MF
โ”œโ”€โ”€ scan.jsp
โ””โ”€โ”€ WEB-INF
โ”œโ”€โ”€ lib
โ””โ”€โ”€ web.xml

````

---

## โš™๏ธ Tech Stack

- **Backend:** JavaEE (Servlets, JSP)
- **Frontend:** JSP, CSS, JavaScript
- **Database:** Oracle 21c DB
- **QR Code:** qrious (JS library)
- **Server:** Apache Tomcat
- **IDE:** Eclipse Enterprise Edition
- **Build:** WAR deployable

---

## ๐Ÿ› ๏ธ Setup & Installation

### Prerequisites
- Java 21 (Recommended)
- Oracle Database (21c)
- Apache Tomcat 10.1
- QR Code generation library (qrious)

### Steps

1. **Clone the repository**
```bash
git clone https://github.com/rahimuj570/AuthentiTrack
cd AuthentiTrack

2. **Set up the Database (Oracle)**

* Create a new schema `authenti_tracker`
* Run the script from `source files/authenti_tracker.sql`

3. **Configure Database Connection**

* Update your ConnectionProvider.java with Oracle DB credentials*

4. **Deploy the Application**

* Build WAR file and deploy in Tomcat/GlassFish
* Access the system at:

```
http://localhost:8080/AuthentiTrack
```

---

## ๐Ÿ“– Usage

* **Manufacturer Workflow**

1. Login as manufacturer
2. Add product and create a new batch
3. Generate QR codes (system auto-generates unique codes)
4. Print and attach QR codes on product packaging
5. Monitor customer scans and feedback

* **Customer Workflow**

1. Scratch the QR sticker
2. Scan the QR code โ†’ redirected to product verification page
3. View product details (authenticity, expiry, batch status)
4. If batch is recalled, warning message is displayed
5. Optionally, submit feedback/complaint (valid for 30 days)

---

## ๐Ÿ“ธ Screenshots

### ๐Ÿ” Login Page

![Login Screenshot](screenshots/login.png)

### ๐Ÿงพ Product Details Page

![Show Products Screenshot](screenshots/pd.png)

### ๐Ÿงพ Add Product Page

![Add Product Screenshot](screenshots/add_pd.png)

### โ™ป๏ธ Generate Batch Page

![Generate Batch Page](screenshots/gen.png)

### โ™ป๏ธ Batch Details Page

![Batch Details Page](screenshots/batch.png)

### ๐Ÿท๏ธ QR Codes Genrator Page

![QR Codes Genrator Page](screenshots/qr.png)

### ๐Ÿ“ฑ QR Code Scan Result

![Scan Screenshot](screenshots/scan1.png)

### ๐Ÿ“ฑ QR Code Scan Result (FAKE Product)

![FAKE Screenshot](screenshots/scan2.png)

---

## ๐Ÿ”ง Development

* Use an IDE like Eclipse with Tomcat
* Configure **Oracle JDBC driver** in your server libraries
* For QR Code generation, include **qrious** in `qr_codes.jsp/`

---

## ๐Ÿค Contribution

1. Fork the repo
2. Create a feature branch (`feature/my-new-feature`)
3. Commit changes (`git commit -m 'Add feature'`)
4. Push to branch
5. Open a Pull Request

---