A comprehensive platform that helps students verify and reconcile their personal details across school records, NIN, WAEC, and other national ID systems before NYSC registration.
- Landing Page: Modern, responsive homepage with service overview
- Authentication: Secure login with school credentials (matric number + password)
- Dashboard: Overview of verification status, discrepancies, and recent requests
- Profile Management: View and update personal details across all platforms
- Verification Flow: Detect discrepancies and initiate verification requests
- Payment Integration: Secure payment processing with Interswitch
- Dashboard: Comprehensive overview with statistics and analytics
- Student Management: View and manage student accounts
- Verification Queue: Process and track verification requests
- Analytics: Detailed reports on discrepancies and revenue
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js with role-based access control
- API Integrations: Mock school and NIN API endpoints
- Payment Gateway: Interswitch Web Checkout integration
- Responsive Design: Mobile-first UI with Tailwind CSS
- Frontend: Next.js 16, React 19, TypeScript
- Styling: Tailwind CSS
- Database: PostgreSQL (Neon)
- ORM: Prisma
- Authentication: NextAuth.js
- State Management: TanStack Query
- Payment: Interswitch Web Checkout
- Deployment: Vercel (recommended)
- Node.js 18+
- pnpm (recommended) or npm
- PostgreSQL database (Neon recommended)
git clone <repository-url>
cd educonfirm
pnpm installCreate a .env.local file in the root directory:
# Database
DATABASE_URL="your-postgresql-connection-string"
# NextAuth
NEXTAUTH_SECRET="your-nextauth-secret"
NEXTAUTH_URL="http://localhost:3000"
# Interswitch (Optional - for production)
NEXT_PUBLIC_INTERSWITCH_MERCHANT_CODE="your-merchant-code"
NEXT_PUBLIC_INTERSWITCH_PAY_ITEM_ID="your-pay-item-id"# Generate Prisma client
pnpm db:generate
# Push schema to database
pnpm db:push
# Seed with sample data
pnpm db:seedpnpm devVisit http://localhost:3000 to see the application.
The seeded database includes test accounts:
- Email: admin@educonfirm.com
- Password: admin123
-
Matric Number: 180401001
-
Password: student123
-
Matric Number: 180401002
-
Password: student123
educonfirm/
├── app/ # Next.js app directory
│ ├── admin/ # Admin portal pages
│ ├── api/ # API routes
│ ├── student/ # Student portal pages
│ ├── login/ # Authentication pages
│ └── providers/ # React providers
├── lib/ # Utility libraries
│ ├── auth.ts # NextAuth configuration
│ └── prisma.ts # Prisma client
├── prisma/ # Database schema and migrations
│ ├── schema.prisma # Database schema
│ └── seed.ts # Database seeding
├── types/ # TypeScript type definitions
└── public/ # Static assets
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm db:generate- Generate Prisma clientpnpm db:push- Push schema to databasepnpm db:seed- Seed database with sample datapnpm db:studio- Open Prisma Studio
- Database schema with all required models
- NextAuth.js authentication with role-based access
- Student portal (dashboard, profile, verification)
- Admin dashboard with analytics
- Interswitch payment integration
- Mock API integrations (school, NIN)
- Responsive UI with Tailwind CSS
- Database seeding with test data
- Email notification system
- Advanced analytics and reporting
- Real API integrations
- Performance optimizations
- Push code to GitHub
- Connect repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy
DATABASE_URL="your-production-database-url"
NEXTAUTH_SECRET="your-production-secret"
NEXTAUTH_URL="https://your-domain.com"
NEXT_PUBLIC_INTERSWITCH_MERCHANT_CODE="your-live-merchant-code"
NEXT_PUBLIC_INTERSWITCH_PAY_ITEM_ID="your-live-pay-item-id"- Role-based access control
- Secure password hashing with bcrypt
- CSRF protection with NextAuth
- Input validation and sanitization
- Secure payment processing
- Database indexing on frequently queried fields
- Pagination for large datasets
- Optimized Prisma queries
- CDN for static assets
- Connection pooling
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For support, email support@educonfirm.com or create an issue in the repository.
Built with ❤️ for Nigerian students preparing for NYSC service.