Skip to content

Repository files navigation

EduConfirm - NYSC Verification Platform

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.

🚀 Features

Student Portal

  • 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

Admin Portal

  • 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

Technical Features

  • 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

🛠️ Tech Stack

  • 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)

📋 Prerequisites

  • Node.js 18+
  • pnpm (recommended) or npm
  • PostgreSQL database (Neon recommended)

🚀 Quick Start

1. Clone and Install

git clone <repository-url>
cd educonfirm
pnpm install

2. Environment Setup

Create 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"

3. Database Setup

# Generate Prisma client
pnpm db:generate

# Push schema to database
pnpm db:push

# Seed with sample data
pnpm db:seed

4. Start Development Server

pnpm dev

Visit http://localhost:3000 to see the application.

🔑 Test Credentials

The seeded database includes test accounts:

Admin

Students

  • Matric Number: 180401001

  • Password: student123

  • Matric Number: 180401002

  • Password: student123

📁 Project Structure

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

🔧 Available Scripts

  • pnpm dev - Start development server
  • pnpm build - Build for production
  • pnpm start - Start production server
  • pnpm db:generate - Generate Prisma client
  • pnpm db:push - Push schema to database
  • pnpm db:seed - Seed database with sample data
  • pnpm db:studio - Open Prisma Studio

🎯 Key Features Implemented

✅ Completed

  • 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

🔄 In Progress

  • Email notification system
  • Advanced analytics and reporting
  • Real API integrations
  • Performance optimizations

🚀 Deployment

Vercel (Recommended)

  1. Push code to GitHub
  2. Connect repository to Vercel
  3. Add environment variables in Vercel dashboard
  4. Deploy

Environment Variables for Production

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"

🔒 Security Features

  • Role-based access control
  • Secure password hashing with bcrypt
  • CSRF protection with NextAuth
  • Input validation and sanitization
  • Secure payment processing

📊 Scalability Considerations

  • Database indexing on frequently queried fields
  • Pagination for large datasets
  • Optimized Prisma queries
  • CDN for static assets
  • Connection pooling

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

📄 License

This project is licensed under the MIT License.

🆘 Support

For support, email support@educonfirm.com or create an issue in the repository.


Built with ❤️ for Nigerian students preparing for NYSC service.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages