A comprehensive conference management platform for the 2025 Conference on Biomechatronics Engineering and Agricultural Machinery
This is a sophisticated full-stack conference management platform specifically developed for the 2025 Conference on Biomechatronics Engineering and Agricultural Machinery (2025 εΉ΄ηζ©θθΎ²ζ©εΈθ‘η θ¨ζ). Currently deployed at beame2025.cc.
This end-to-end full-stack solution handles every aspect of conference management:
π’ Announcements β π€ Registration β π³ Payment β π Submission β
π Review Process β β
Acceptance β π± QR Check-in β π Event Completion
π Full Business Process Coverage:
- π’ Information Publishing: Dynamic announcements, important dates, speaker information with real-time admin panel editing - organizers can manage all content directly from the frontend without backend access. This is a solution designed for non-technical event organizers.
- π₯ User Registration: Google OAuth authentication with multi-role management
- π³ Payment Processing: Automated ECPay integration with time-based pricing (early bird, regular, on-site)
- π Document Submission: PDF/Word upload with real-time preview and validation
- π Document Review System: Two-stage review workflow (abstract β full paper) with revision cycles
- π§ Communication Hub: Automated email notifications for every workflow transition
- π± Event Management: QR code-based check-in system for on-site attendance tracking
- π Administrative Control: Comprehensive admin dashboard for user, payment, and submission management
Dynamic homepage with conference information, announcements, and speaker details
Personal dashboard for document submission, payment status, and review tracking
Comprehensive reviewer interface with document preview and batch operations
Non-technical admin panel for content management, user roles, and system configuration
Note: Screenshots showcase the live system currently serving beame2025.cc
- Multi-role Authentication System with granular permissions
- Complex Document Review Workflow with status management
- Third-party Payment Integration (ECPay) with dynamic pricing
- Real-time QR Code Check-in System for event management
- Automated Email Notification System with custom templates
- PDF Document Processing & Preview capabilities
- RESTful API Design with 30+ endpoints and custom middleware
Frontend: Next.js 15 + React 19 + TypeScript + Tailwind CSS
Backend: Next.js API Routes + Custom Middleware Factory
Database: MongoDB with complex relational data schema
Auth: NextAuth.js + Google OAuth 2.0
Payment: ECPay (Taiwan payment gateway)
UI/UX: Radix UI + shadcn/ui + Custom Components
DevOps: Docker + Docker Compose + CloudFlare Tunnel
Email: Nodemailer + HTML Templates
PDF: PDF.js + Mammoth.js
graph TB
subgraph "Frontend Layer (Next.js)"
A1[π Public Pages<br/>Conference Info & Announcements]
A2[π€ Profile Dashboard<br/>Submission & Payment Status]
A3[βοΈ Admin/Reviewer Dashboard<br/>System Management & Review]
end
subgraph "API Layer (30+ Routes)"
B1[π Auth API<br/>NextAuth/Google OAuth]
B2[π Document API<br/>Upload/Review/Download]
B3[π³ Payment API<br/>ECPay Integration]
B4[π§ Notification API<br/>Email System]
B5[π₯ User API<br/>Role Management]
end
subgraph "Data Layer & External Services"
C1[(ποΈ MongoDB<br/>Documents, Users, Payments)]
C2[π File System<br/>Document Upload Storage]
C3[π¬ Email Service<br/>Nodemailer]
C4[π¦ ECPay<br/>Payment Gateway]
end
style A1 fill:#1976d2,color:#fff
style A2 fill:#388e3c,color:#fff
style A3 fill:#f57c00,color:#fff
style C1 fill:#7b1fa2,color:#fff
style C2 fill:#d32f2f,color:#fff
style C3 fill:#2e7d32,color:#fff
style C4 fill:#f57c00,color:#fff
- Attendees: Registration, document submission, payment
- Reviewers: Paper review, status management, batch operations
- Admins: User management, system configuration, analytics
- Helpers: Check-in assistance, manual operations
flowchart TD
A[π€ User Submits Document] --> B[β³ Pending Review]
B --> C[π Under Review]
C --> D{π Reviewer Decision}
D -->|β
Accept| E[β¨ Abstract Accepted]
D -->|β Reject| F[π« Rejected - Final]
D -->|π Needs Revision| G[β©οΈ Replied - Needs Changes]
G --> H[βοΈ User Revises Abstract<br/>π Reviewer provides comments<br/>π Reviewer can upload modified file]
H --> I[β³ Waiting Review]
I --> C
E --> J[π Full Paper Submission]
J --> K[β³ Full Paper Under Review]
K --> L{π Full Paper Review}
L -->|β
Accept| M[π Final Paper Accepted]
L -->|β Reject| N[π« Final Paper Rejected]
L -->|π Needs Revision| O[β©οΈ Final Paper Needs Changes]
O --> P[βοΈ User Revises Final Paper<br/>π Reviewer provides comments<br/>π Reviewer can upload modified files]
P --> Q[β³ Final Paper Waiting Review]
Q --> L
M --> R[π Conference Ready]
N --> S[π Final - Not Accepted]
style A fill:#1976d2,color:#fff
style E fill:#388e3c,color:#fff
style F fill:#d32f2f,color:#fff
style G fill:#f57c00,color:#fff
style M fill:#2e7d32,color:#fff
style N fill:#c62828,color:#fff
style O fill:#f57c00,color:#fff
style R fill:#2e7d32,color:#fff
style S fill:#c62828,color:#fff
Key Features:
- Automated Email Notifications π§ sent at every state transition
- Two-Stage Review Process: Abstract β Full Paper review
- Revision Loops: Both stages support multiple revision cycles
- Interactive Review System: Reviewers can provide written comments and upload modified documents
- PDF/Word document upload with validation and preview
- Reviewer Dashboard Integration with real-time status updates
- Reviewer Whitelist System for targeted assignment
- Status Tracking with instant notifications to all stakeholders
- Time-based pricing: Early bird β Regular β On-site rates
- Category-based pricing: Member, Non-member, Student rates
- ECPay integration with automatic status verification
- Manual payment processing for admin users
- Template-based email system with dynamic content
- Event-driven notifications (payment confirmation, status updates)
Implemented a reusable middleware system for consistent API behavior:
middlewareFactory(
{
cors: true,
auth: true,
role: ["admin", "reviewer"],
},
handler
);/api/
βββ auth/ # Authentication (NextAuth)
βββ attendee/ # User-specific operations
βββ admin/ # Administrative functions
βββ reviewer/ # Review system
βββ payment/ # Payment processing
βββ documents/ # File management
βββ info/ # Public information
βββ helpers/ # Utility functions
- Type-safe API responses with TypeScript interfaces
- Comprehensive error handling with standardized responses
- Session-based authorization with role-based access control
- CORS handling for secure cross-origin requests
- Users: Profile data, roles, payment status
- Documents: File metadata, review status, annotations
- Submissions: Review workflow tracking
- Payments: Transaction records with ECPay integration
- Announcements: Dynamic content management
- PaymentOptions: Time-based pricing configuration
- Docker & Docker Compose
- Google OAuth credentials
- ECPay merchant account (optional for payments)
- SMTP email service credentials
# 1. Clone the repository
git clone https://github.com/brian033/bmesite
cd bime_conf
# 2. Populate required directories
mkdir uploads db
# 3. Configure environment variables
cp env_example.txt .env
# Fill in your configuration values
# 4. Start the application
docker-compose -f docker-compose.prod.yml --env-file .env up --build -dThe system includes pre-configured data in basic_datas/:
- Payment options with time-based pricing
- System announcements and important dates
- Default configuration for immediate deployment
Import initial data:
# Import payment options
docker exec mongo mongoimport --db confDb --collection paymentOptions --file /app/basic_datas/confDb.paymentOptions.json
# Import announcements
docker exec mongo mongoimport --db confDb --collection announcements --file /app/basic_datas/confDb.announcements.json
# Import important dates
docker exec mongo mongoimport --db confDb --collection importantDates --file /app/basic_datas/confDb.importantDates.jsonOr use MongoDB Compass to load data with interactive ui
The platform includes comprehensive backup scripts in scripts/ directory:
Backup System (./scripts/backup.sh):
- Database Backup: Uses
mongodumpto create complete MongoDB snapshots - File System Backup: Compresses all uploaded documents into timestamped ZIP files
- Automated Organization: Creates timestamped backup directories for easy management
- Docker Integration: Works seamlessly with containerized MongoDB instance
Recovery System (./scripts/restore.sh):
- Complete Restoration: Restores both database and file uploads from backup
- Data Validation: Automatically locates backup files and validates integrity
- Drop & Replace: Uses
--dropflag to ensure clean restoration
Production-Ready Features:
# Daily automated backup via cron job
0 2 * * * /path/to/scripts/backup.sh $MONGO_PASSWORD >> /var/log/conference-backup.log 2>&1
# Quick restore when needed
./scripts/restore.sh $MONGO_PASSWORD ./backup/2025-08-28_02-00-00This backup system ensures zero data loss and enables rapid disaster recovery for critical conference operations.
- Complex State Management: Implemented custom hooks for document workflow states
- Payment Security: Implemented ECPay hash verification and webhook handling
- UI/UX Consistency: Created reusable component library with Radix UI
- Server-side Rendering with Next.js for optimal SEO
- Image Optimization with Next.js built-in features
- Database Indexing for efficient query performance
- Containerized Deployment for consistent environments
- Cloudflare tunnel support no need to configure Firewall settings
- Currently serving the 2025 Conference on Biomechatronics Engineering and Agricultural Machinery
- Handling 100+ user registrations and document submissions
- Processing conference fees through automated payment system
- Reducing administrative workload through workflow automation
Project Background: This application was developed from scratch to production deployment within 1.5 months for the 2025 εΉ΄ηζ©θθΎ²ζ©εΈθ‘η θ¨ζ (2025 Conference on Biomechatronics Engineering and Agricultural Machinery). Early development was completed independently by @brian033, covering the full-stack architecture, core business logic, and system integration. Due to internship commitments during the conference period, @dn070017 contributed significantly to frontend refinements and operational maintenance during the live event phase.
Key Learning Outcomes:
- Advanced Next.js 15 features and optimizations
- Complex state management in React applications
- Database design for document workflow systems
- Third-party API integration (Payment gateways, OAuth)
- Docker containerization and deployment strategies
Acknowledgments:
- Special gratitude to the Department of Biomechatronics Engineering, National Taiwan University professors for trusting an undergraduate student with this critical project responsibility
- Deep appreciation to @dn070017 for exceptional project leadership - providing clear specifications and requirements from the early stages, serving as an interface with conference organizing faculty to manage scope and feasibility, offering practical technical guidance during challenging development phases, and directly contributing code improvements during conference operations when I was unavailable due to internship commitments
Live Demo: Visit beame2025.cc to see the platform in action. (Note: Live demo may be discontinued after the conference concludes in September 2025)
Currently deployed as a monolithic application with local storage. The migration plan focuses on practical scalability improvements:
- Local File System β AWS S3: Migrate document uploads to scalable cloud storage
- Benefits: Unlimited storage, automatic backups, CDN integration for faster file access
- Self-hosted MongoDB β MongoDB Atlas: Move to managed cloud database
- Benefits: Automatic scaling, built-in security, professional maintenance
- Docker Compose β EKS Service: Package the entire Next.js application (frontend + backend) as a single EKS pod
- Load Balancer: Add Application Load Balancer for traffic distribution
- Auto-scaling: Configure pod scaling based on traffic demands
- Benefits: Zero-downtime deployments, automatic scaling, improved reliability
- Horizontal Scaling: Handle increased conference attendee loads
- 99.9% Uptime: Professional-grade availability for critical conference periods
- Global Performance: Faster file access through CDN
- Simplified Maintenance: Managed services reduce operational overhead