Skip to content

Latest commit

Β 

History

79 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Wachamo University Fellowship Management System

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.

Version Next.js TypeScript MongoDB


✨ Features

πŸŽ“ Member Management

  • 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

πŸ›οΈ E-Commerce System

  • 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 & Payment

  • 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

πŸ“Š Admin Dashboard

  • 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

πŸ” Security & Authentication

  • 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

🎨 Design & UX

  • 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

πŸš€ Tech Stack

Frontend

  • 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

Backend

  • 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

Additional Tools

  • Recharts - Data visualization and charts
  • XLSX - Excel export functionality
  • Zustand - Shopping cart state management

πŸ“¦ Installation

Prerequisites

  • Node.js 18+ installed
  • MongoDB instance (local or MongoDB Atlas)
  • Cloudinary account (for receipt uploads)

Setup Steps

  1. Clone the repository
git clone https://github.com/yourusername/wachamo-fellow.git
cd wachamo-fellow
  1. Install dependencies
npm install
  1. 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
  1. Run the development server
npm run dev
  1. Open the application Visit http://localhost:3000

πŸ—‚οΈ Project Structure

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

🎯 Usage

For Members

  1. Visit the landing page
  2. Click "Get Started" to register
  3. Complete the 4-step registration form
  4. Browse the shop and make purchases
  5. Donate to support the fellowship
  6. Track orders using order number and student ID

For Administrators

  1. Navigate to /admin/login
  2. Login with admin credentials
  3. 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

πŸ”‘ Default Admin Credentials

Email: admin@wachamo.edu.et
Password: admin123

⚠️ Important: Change these credentials in production!


πŸ“Š Key Models

Member

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

Transaction

  • 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

Product

  • Name, description, price, category
  • Image uploads
  • Stock management
  • Availability toggle

🎨 Design System

Colors

  • Primary: Blue #2ea7df
  • Secondary: Orange #f59f45
  • Gradients: Blue β†’ Orange transitions

Typography

  • Font Family: Inter (300-800 weights)
  • Headings: Bold (700-800)
  • Body: Medium (500)
  • Placeholders: Light (300)

Components

  • Glassmorphism: Frosted glass effects with backdrop blur
  • Rounded: 2xl border radius (16px)
  • Shadows: Layered with color tints
  • Animations: 300ms transitions

πŸš€ Deployment

Vercel Deployment (Recommended)

  1. Push your code to GitHub
  2. Import project in Vercel
  3. Add environment variables
  4. Deploy

Environment Variables for Production

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_password

πŸ“ API Endpoints

Public Endpoints

  • GET /api/registration-status - Check registration availability
  • POST /api/members - Register new member
  • GET /api/products - List products
  • GET /api/banks - List bank accounts

Protected Endpoints (Admin)

  • GET /api/members - Get all members with filtering
  • PUT /api/members/[id] - Update member
  • DELETE /api/members/[id] - Delete member
  • GET /api/stats - Dashboard statistics
  • GET /api/transactions - Transaction history
  • PUT /api/transactions/[id] - Approve/reject transaction
  • POST /api/products - Create product
  • PUT /api/products/[id] - Update product
  • DELETE /api/products/[id] - Delete product

🀝 Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.


πŸ“„ License

This project is created for Wachamo University Evangelical Students Union Fellowship.


πŸ‘¨β€πŸ’» Developer

Built by Dagmawi Lencho


πŸ™ Acknowledgments

Built with ❀️ for the Wachamo Fellowship Community

"For where two or three gather in my name, there am I with them." - Matthew 18:20


πŸ“ž Support

For issues, questions, or feature requests, please contact the fellowship administrators.

About

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.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages