A modern, comprehensive web application for managing the Wachamo University Evangelical Students Union Fellowship. Built with Next.js, TypeScript, MongoDB, and designed with beautiful glassmorphism UI.
- Multi-step Registration Form - Beautiful 4-step registration process with real-time validation
- Advanced Search & Filtering - Filter by fellowship team, college, department, year, and more
- CRUD Operations - Complete member management with edit, view, and delete capabilities
- Excel Export - Export filtered member data to Excel for reporting
- Alphabetical Filtering - Quick access to members by first letter
- Product Shop - Browse and purchase fellowship merchandise (Bibles, books, t-shirts, stickers, accessories)
- Shopping Cart - Add, remove, and manage cart items with quantity controls
- Secure Checkout - Manual payment verification with receipt upload system
- Order Tracking - Track order status with unique order numbers
- Stock Management - Real-time inventory tracking
- Donation Portal - Separate donation system with receipt verification
- Multiple Bank Support - Manage multiple bank accounts for payments
- Transaction Management - Approve, reject, or revert transaction statuses
- Receipt Upload - Cloudinary-integrated receipt storage and viewing
- Revenue Analytics - Track donations, sales, and total revenue
- Real-time Statistics - Member counts, revenue, transaction status
- Interactive Charts - Members by college, department, year, and fellowship team
- Transaction History - Complete payment tracking with filtering
- Product Management - CRUD operations for shop products
- Bank Account Management - Add, edit, and manage fellowship bank accounts
- Registration Control - Open/close registration periods with date scheduling
- JWT Authentication - Secure admin access with HTTP-only cookies
- Password Hashing - bcrypt-protected credentials
- Role-based Access - Admin-only routes protected by middleware
- Session Management - Automatic logout on token expiration
- Glassmorphism UI - Modern frosted glass effects with backdrop blur
- Responsive Design - Mobile-first, optimized for all screen sizes
- Smooth Animations - Framer Motion-powered transitions
- Spiritual Theme - Christian elements with blue (#2ea7df) and orange (#f59f45) gradient colors
- Accessible Forms - Clear validation, error messages, and user feedback
- Next.js 15 - React framework with App Router
- React 19 - Latest React features
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- Shadcn UI - Beautiful component library
- Framer Motion - Smooth animations
- Lucide Icons - Modern icon set
- Next.js API Routes - Serverless API endpoints
- MongoDB - NoSQL database with Mongoose ODM
- JWT - JSON Web Tokens for authentication
- bcryptjs - Password hashing
- Cloudinary - Image/receipt storage
- Recharts - Data visualization and charts
- XLSX - Excel export functionality
- Zustand - Shopping cart state management
- Node.js 18+ installed
- MongoDB instance (local or MongoDB Atlas)
- Cloudinary account (for receipt uploads)
- Clone the repository
git clone https://github.com/yourusername/wachamo-fellow.git
cd wachamo-fellow- Install dependencies
npm install- Configure environment variables
Create a .env.local file in the root directory:
# Database
MONGODB_URI=your_mongodb_connection_string
# Authentication
NEXTAUTH_SECRET=your-super-secret-jwt-key-change-in-production
NEXTAUTH_URL=http://localhost:3000
# Cloudinary (for receipt uploads)
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Admin Credentials (change in production!)
ADMIN_EMAIL=admin@wachamo.edu.et
ADMIN_PASSWORD=admin123- Run the development server
npm run dev- Open the application Visit http://localhost:3000
wachamo-fellow/
βββ app/ # Next.js app directory
β βββ admin/ # Admin pages
β β βββ dashboard/ # Admin dashboard with analytics
β β βββ login/ # Admin authentication
β β βββ products/ # Product management
β βββ api/ # API routes
β β βββ admins/ # Admin CRUD
β β βββ auth/ # Authentication endpoints
β β βββ banks/ # Bank management
β β βββ members/ # Member CRUD
β β βββ payment/ # Payment processing
β β βββ products/ # Product CRUD
β β βββ transactions/ # Transaction management
β β βββ stats/ # Analytics & statistics
β βββ cart/ # Shopping cart page
β βββ checkout/ # Checkout & payment
β βββ donate/ # Donation portal
β βββ register/ # Member registration
β βββ shop/ # Product shop
β βββ track-order/ # Order tracking
β βββ page.tsx # Landing page
βββ components/ # React components
β βββ ui/ # Shadcn UI components
β βββ AdminManagementDialog.tsx
β βββ BankManagementDialog.tsx
β βββ EditMemberDialog.tsx
β βββ PaymentSettingsDialog.tsx
β βββ ProductDialog.tsx
βββ lib/ # Utility libraries
β βββ academicData.ts # College/department data
β βββ cartStore.ts # Shopping cart state
β βββ cloudinary.ts # Image upload config
β βββ fellowshipTeams.ts # Fellowship team data
β βββ mongodb.ts # Database connection
βββ models/ # MongoDB schemas
β βββ Admin.ts
β βββ Bank.ts
β βββ Member.ts
β βββ Product.ts
β βββ Transaction.ts
β βββ RegistrationSettings.ts
βββ middleware.ts # Route protection
βββ package.json
- Visit the landing page
- Click "Get Started" to register
- Complete the 4-step registration form
- Browse the shop and make purchases
- Donate to support the fellowship
- Track orders using order number and student ID
- Navigate to
/admin/login - Login with admin credentials
- Access the dashboard with 5 main tabs:
- Overview - Key statistics and quick insights
- Members - Manage registered members
- Transactions - Approve/reject payments
- Analytics - Interactive charts and trends
- Banks - Manage bank accounts
Email: admin@wachamo.edu.et
Password: admin123
β οΈ Important: Change these credentials in production!
- Personal Information (name, sex, age, phone)
- Academic Details (student ID, college, department, year)
- Fellowship Information (team, leadership role, Bible study)
- Spiritual Details (born again status, church, spiritual gifts)
- Order tracking with unique order numbers
- Payment status (pending, approved, rejected)
- Receipt uploads with Cloudinary
- Type differentiation (donation vs product purchase)
- Admin approval/rejection with reasons
- Name, description, price, category
- Image uploads
- Stock management
- Availability toggle
- Primary: Blue
#2ea7df - Secondary: Orange
#f59f45 - Gradients: Blue β Orange transitions
- Font Family: Inter (300-800 weights)
- Headings: Bold (700-800)
- Body: Medium (500)
- Placeholders: Light (300)
- Glassmorphism: Frosted glass effects with backdrop blur
- Rounded: 2xl border radius (16px)
- Shadows: Layered with color tints
- Animations: 300ms transitions
- Push your code to GitHub
- Import project in Vercel
- Add environment variables
- Deploy
MONGODB_URI=your_production_mongodb_uri
NEXTAUTH_SECRET=strong-random-secret-key
NEXTAUTH_URL=https://yourdomain.com
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
ADMIN_EMAIL=your_admin_email
ADMIN_PASSWORD=strong_admin_passwordGET /api/registration-status- Check registration availabilityPOST /api/members- Register new memberGET /api/products- List productsGET /api/banks- List bank accounts
GET /api/members- Get all members with filteringPUT /api/members/[id]- Update memberDELETE /api/members/[id]- Delete memberGET /api/stats- Dashboard statisticsGET /api/transactions- Transaction historyPUT /api/transactions/[id]- Approve/reject transactionPOST /api/products- Create productPUT /api/products/[id]- Update productDELETE /api/products/[id]- Delete product
Contributions are welcome! Please feel free to submit issues or pull requests.
This project is created for Wachamo University Evangelical Students Union Fellowship.
Built by Dagmawi Lencho
Built with β€οΈ for the Wachamo Fellowship Community
"For where two or three gather in my name, there am I with them." - Matthew 18:20
For issues, questions, or feature requests, please contact the fellowship administrators.