Skip to content

Repository files navigation

LAUTECH APH Manual Distribution Platform

A modern digital platform for purchasing, verifying, and collecting academic manuals for the Animal Production and Health (APH) department at Ladoke Akintola University of Technology (LAUTECH).

The platform replaces a manual distribution workflow with a centralized digital system that allows students to browse available manuals, submit their information, make online payments, receive verified digital receipts, and have their purchases validated through QR code scanning.


Overview

Traditional manual distribution can involve several disconnected steps:

  • Students searching for available manuals
  • Manual collection and payment records
  • Course representatives tracking purchases
  • Difficulty reconciling payments
  • Lost or incomplete records
  • Delays during manual collection
  • Limited visibility into inventory and sales

This application brings those processes into one digital workflow.

Student Workflow

Browse Manuals
      ↓
Select Manual
      ↓
Enter Student Information
      ↓
Online Payment
      ↓
Payment Verification
      ↓
Digital Receipt
      ↓
QR Code Verification
      ↓
Manual Collection

The system also provides administrative and staff interfaces for managing manuals, monitoring purchases, verifying receipts, and tracking collections.


Screenshots

Student Manual Catalogue

Students can browse available academic manuals, search by title, view pricing and remaining inventory, and begin a purchase.

Student Manual Catalogue


Manual Selection & Checkout

Students select a manual and provide the required information before proceeding through the payment process.

Manual Selection


Digital Receipt & QR Verification

Successful purchases generate a digital receipt containing the student's purchase information, transaction reference, payment details, and a unique QR code used for verification.

Digital Receipt


Admin Dashboard

Administrators can monitor sales, manage manuals and inventory, review purchases, and oversee staff operations from a centralized dashboard.

Admin Dashboard


Staff QR Scanner

Authorized staff can scan and verify student receipts before marking manuals as collected.

Staff Scanner


Key Features

Student Experience

  • Browse available academic manuals
  • Search manuals by title
  • View manual pricing and inventory
  • Submit student information
  • Online payment processing
  • Payment verification
  • Digital receipt generation
  • QR-code based receipt verification
  • Receipt PDF download
  • WhatsApp receipt sharing
  • Purchase reference recovery

Staff Operations

  • Secure staff authentication
  • QR-code receipt scanning
  • Purchase verification
  • Manual collection tracking
  • Collection history
  • Staff activity tracking

Administration

  • Admin dashboard
  • Sales and purchase analytics
  • Manual management
  • Inventory tracking
  • Staff management
  • Staff activation and deactivation
  • Purchase monitoring
  • Transaction tracking
  • Collection monitoring

Progressive Web App

The frontend is configured as a Progressive Web App (PWA), providing an installable and app-like experience on supported devices.


Tech Stack

Frontend

  • React
  • Vite
  • Tailwind CSS
  • React Router
  • Axios
  • Lucide React
  • React Hot Toast
  • SweetAlert2

Payments & Verification

  • Flutterwave
  • QR-code scanning
  • QR-based purchase verification

Documents & Receipts

  • jsPDF
  • html2canvas

Progressive Web App

  • Vite PWA Plugin

Backend Integration

The frontend communicates with a separate Node.js/Express backend responsible for:

  • Authentication
  • Payment processing
  • Purchase management
  • Database operations
  • Receipt generation
  • Email delivery
  • QR verification
  • Staff and admin operations

Application Architecture

The application follows a client-server architecture.

┌──────────────────────────────┐
│        React Frontend        │
│                              │
│  Student Portal              │
│  Checkout                    │
│  Receipt                     │
│  Admin Dashboard             │
│  Staff Scanner               │
└──────────────┬───────────────┘
               │
               │ REST API
               ▼
┌──────────────────────────────┐
│       Node.js / Express      │
│                              │
│  Authentication              │
│  Purchases                   │
│  Payments                    │
│  Manuals                     │
│  Staff Management            │
│  QR Verification             │
└──────────────┬───────────────┘
               │
               ▼
┌──────────────────────────────┐
│          PostgreSQL          │
│                              │
│  Users                       │
│  Manuals                     │
│  Purchases                   │
│  Transactions                │
│  Collections                 │
└──────────────────────────────┘

Project Structure

manual-distribution-frontend/
│
├── public/
│
├── screenshots/
│   ├── 01-student-home.png
│   ├── 02-manual-selection.png
│   ├── 03-digital-receipt.png
│   ├── 04-admin-dashboard.png
│   └── 05-staff-scanner.png
│
├── src/
│   ├── api/
│   │   └── axios.js
│   │
│   ├── assets/
│   │
│   ├── components/
│   │
│   ├── contexts/
│   │
│   ├── layouts/
│   │
│   ├── pages/
│   │
│   ├── App.jsx
│   ├── index.css
│   └── main.jsx
│
├── .env.example
├── package.json
├── tailwind.config.js
├── vite.config.js
└── README.md

Getting Started

Prerequisites

Make sure you have the following installed:

  • Node.js
  • npm
  • Git

1. Clone the Repository

git clone <your-github-repository-url>

Navigate into the project:

cd manual-distribution-frontend

2. Install Dependencies

npm install

3. Configure Environment Variables

Create a .env file in the project root:

VITE_API_URL=http://localhost:5000/api

For production, set VITE_API_URL to the deployed backend API URL.

Never commit .env files containing private credentials or secrets.


4. Start the Development Server

npm run dev

Vite will start the application locally.


Available Scripts

Development

npm run dev

Starts the Vite development server.

Production Build

npm run build

Creates an optimized production build.

Linting

npm run lint

Runs ESLint across the project to identify code-quality issues.

Preview

npm run preview

Serves the production build locally for testing.


Core User Flows

1. Manual Purchase

Students can:

  1. Browse available manuals
  2. Search for a course manual
  3. Select a manual
  4. Enter their student information
  5. Proceed to payment
  6. Complete payment through Paystack
  7. Have the transaction verified
  8. Receive their digital receipt

2. Digital Receipt

After successful payment, the system provides a receipt containing:

  • Student name
  • Matriculation number
  • Manual purchased
  • Academic level
  • Amount paid
  • Transaction reference
  • Unique QR verification code

The receipt can be downloaded as a PDF and shared through WhatsApp.


3. QR Verification & Collection

The generated QR code allows authorized staff to verify a student's purchase.

The workflow is:

Student presents receipt
        ↓
Staff scans QR code
        ↓
System verifies purchase
        ↓
Purchase details displayed
        ↓
Staff confirms collection
        ↓
Collection recorded

This provides a digital record of manual distribution instead of relying entirely on physical receipts or handwritten records.


Engineering Highlights

This project goes beyond a static frontend and demonstrates the implementation of a complete application workflow.

API Integration

The React application communicates with a REST API through Axios and separates API communication from UI components.

Role-Based Interfaces

Different application experiences are provided for:

  • Students
  • Staff
  • Administrators

Payment Workflow

The frontend integrates with the backend payment workflow and handles payment initialization, verification, and post-payment navigation.

QR-Based Verification

QR codes provide a fast way for authorized staff to verify purchases and process manual collections.

Responsive UI

The interface is designed to work across:

  • Desktop
  • Tablet
  • Mobile devices

PWA Support

The application includes Progressive Web App functionality for a more app-like experience.

Component-Based Architecture

The frontend is organized into reusable React components, pages, layouts, contexts, and API modules to keep the application maintainable as it grows.


API Integration

The frontend communicates with backend endpoints covering:

Authentication
├── Login
├── Forgot Password
└── Reset Password

Manuals
├── List Manuals
├── Manual Details
└── Manual Management

Purchases
├── Initialize Purchase
├── Verify Payment
├── Receipt
├── Recover Reference
├── Verify Purchase
├── Collect Manual
└── Purchase History

Administration
├── Staff Management
├── Staff Activation
├── Staff Deactivation
└── Dashboard Data

The backend is responsible for validating requests and communicating with the database and external services.


Why I Built This

The project was designed around a real-world academic distribution problem rather than as a purely theoretical demo.

The goal was to demonstrate how software can replace a fragmented manual workflow with a system that provides:

  • Better record keeping
  • Faster purchasing
  • Digital payment tracking
  • Automated receipts
  • QR-based verification
  • Inventory visibility
  • Staff accountability
  • Centralized administration

It also provided an opportunity to work across both frontend and backend concerns while building a system around an actual user workflow.


What I Learned

Building this system strengthened my experience with:

  • React application architecture
  • REST API integration
  • Authentication flows
  • Payment integration
  • QR-code workflows
  • Responsive UI development
  • PWA configuration
  • State and route management
  • Database-backed application design
  • Admin dashboard development
  • Transaction-based workflows
  • Debugging frontend/backend integration issues

Future Improvements

Potential future improvements include:

  • More detailed reporting and analytics
  • Automated inventory alerts
  • Improved transaction reconciliation
  • Expanded notification options
  • More granular staff permissions
  • Advanced audit logging
  • Enhanced offline/PWA capabilities
  • Additional payment provider support

Related Backend

This frontend is part of a full-stack application.

The backend is built with:

  • Node.js
  • Express.js
  • Prisma
  • PostgreSQL
  • Flutterwave
  • QR-code generation
  • PDF receipt generation
  • Email services

The frontend and backend are maintained as separate repositories to keep deployment and application responsibilities clearly separated.


Deployment

The frontend can be deployed to modern static hosting platforms such as Vercel or similar services.

The production API endpoint is configured through:

VITE_API_URL

This allows the same frontend codebase to communicate with different backend environments without hardcoding deployment-specific URLs into the application.


License

This project is licensed under the MIT License.


Author

Oguntoke Emmanuel Omotayo

Full-Stack Web Developer focused on building practical, high-converting and scalable web applications.

  • GitHub: GodWithUs17
  • LinkedIn: oguntoke-emmanuel

Built with React, JavaScript, Tailwind CSS, Node.js, Express, PostgreSQL, and a focus on solving real-world problems through software.

About

React frontend for a digital academic manual purchasing, payment, receipt, QR verification, and collection platform.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages