| Library | Purpose |
|---|---|
| Next.js 14 | React framework with App Router |
| TypeScript | Type safety and better DX |
| Tailwind CSS | Utility-first styling |
| Lucide React | Modern, clean icon set |
| React Hooks | State & lifecycle management (useState, useEffect, useMemo) |
- Email & password form validation
- Clean UI with helpful error states
- Automatic redirect to dashboard after successful login
- Overview cards showing shipment statistics
- Fully functional data table with:
- Search (by ID or Product Name)
- Sorting (ID, Product Name, Status, Last Updated)
- Pagination (5 items/page)
- Dynamic routing:
/shipment/[id] - Visual timeline showing order progress
- Product image preview
- Last 5 activity logs
- Color-coded status badge
- Loading states with spinner
- Error handling + retry flow
- Clean async/await data fetching
- Proper state management using hooks
- Fully responsive layout
- Modern, minimalistic design
- Reusable components
- Professional folder structure
- Status-based color badges
├── app/
│ ├── dashboard/ # Dashboard page
│ ├── shipment/[id]/ # Dynamic shipment details
│ ├── signup/ # Signup page
│ ├── page.tsx # Login page
│ └── layout.tsx # Root layout
├── components/
│ ├── dashboard/ # Dashboard components
│ └── Navbar.tsx # Navigation
├── lib/
│ └── AuthContext.tsx # Authentication context
└── public/
└── data/
└── shipments.json # Mock API data
- Color Scheme: Indigo primary + status colors
- Typography: Clean, readable, structured
- Spacing: Consistent margins & padding
- Interactions: Smooth hover transitions
- 🟢 Delivered
- 🟡 In Transit
- 🔴 Delayed
- 🔵 Ordered
- Fast page loads with App Router
- Client-side rendering for interactive parts
- Optimized images using Next.js Image
- Efficient memoization with
useMemo
- Preconfigured in
tailwind.config.ts
- Strict mode enabled in
tsconfig.json
- Ready-to-use code quality rules
Images not loading?
- Check allowed domains in
next.config.js
Build errors?
- Run
npm installto restore dependencies - Delete
.next/folder and rebuild
Created exclusively for the Snipe Blockchain Technical Assessment.
Built with ❤️ for the Snipe Blockchain Frontend Developer Assessment.


