
Overview
Parcelix is a full-stack courier and logistics management platform designed to simplify parcel delivery operations. It connects customers, couriers, and administrators through a centralized system for managing shipments, coordinating deliveries, tracking parcel progress, and handling payments.
The problem
Managing courier operations involves multiple interconnected steps, from shipment creation and pickup scheduling to courier assignment, hub transfers, and final delivery. Without a centralized platform, tracking parcel progress, coordinating delivery operations, and maintaining visibility across the shipment lifecycle can become difficult.
The solution
I built Parcelix as a role-based logistics platform with a dedicated frontend and REST API backend. Customers can create shipments and follow their progress, couriers can participate in delivery operations, and administrators can manage courier applications and operational workflows. PostgreSQL handles relational data, Prisma manages database access, and Redis supports temporary data storage and OTP verification.
Key features
- Role-based authentication and authorization
- Email verification using OTP
- Shipment creation and tracking
- Pickup request and courier assignment workflows
- Courier application and approval management
- Hub, delivery zone, and pricing management
- Shipment status updates throughout the delivery lifecycle
- Payment processing and invoice generation
- Email notifications using EJS templates
- Redis-backed OTP storage
- Responsive dashboards and interfaces
- Shipment cancellation, failed delivery, and return-to-sender workflows
Challenges and how I solved them
Managing shipment lifecycle transitions
A shipment passes through multiple stages, including pickup, hub processing, transit, out-for-delivery, and final delivery. Designing the backend around explicit status transitions helps maintain consistent shipment state and makes the delivery workflow easier to manage.
Implementing secure authentication and verification
Email verification requires temporary OTP storage, expiration handling, and email delivery. I integrated Redis for OTP-related data and implemented email verification as part of the authentication workflow.
Coordinating frontend authentication with token refresh
The Next.js frontend uses a centralized API client to coordinate API requests and token refresh behavior. Keeping authentication logic centralized helps avoid duplicating refresh logic across individual API functions and React Query hooks.
Modeling connected logistics data
Shipments depend on related entities such as customers, couriers, delivery zones, and hubs. Prisma and PostgreSQL provide a relational foundation for these relationships and support structured queries for shipment and operational data.
Outcome
Parcelix is an ongoing full-stack portfolio project that brings together frontend engineering, REST API development, relational database design, authentication, caching, and delivery workflow management in one practical application. The project is designed to demonstrate my ability to build and integrate a complete web application.
What I learned
- Designing and implementing a full-stack application with Next.js and Express.js
- Modeling relational data with Prisma and PostgreSQL
- Implementing authentication, OTP verification, and role-based authorization
- Using Redis for temporary data storage
- Building REST APIs and integrating them with a frontend
- Designing shipment workflows and status transitions
- Managing frontend API requests and token refresh centrally
- Building transactional payment and email notification workflows