📚 Learning Program Participation Tracking System with QR Code Integration
TrailTag is a web application for tracking learning program participation using QR codes. It supports admin, student, and parent roles for managing programs, attendance, and monitoring activities.
- 📱 QR code check-in system
- 👥 Multi-role user management (Admin, Student, Parent)
- 🌍 Internationalization (English, Korean, Japanese)
- 📊 Participation tracking and statistics
- 🔐 JWT authentication
- Create and manage learning programs
- Generate QR codes for programs
- Monitor student participation
- Manage user accounts
- View analytics and reports
- Check-in to programs via QR code scanning
- View participation history
- Track progress across programs
- Access program information
- Monitor child's activities and participation
- View attendance reports
- Track multiple children's progress
- React 19.1.0
- Material-UI (MUI) 7.2.0
- React Router DOM 7.7.0
- Vite
- i18next
- Node.js
- Express 5.1.0
- SQLite (better-sqlite3)
- JWT
- bcrypt
- html5-qrcode (scanning)
- qrcode (generation)
- Node.js 18+
- npm
- Clone the repository
git clone https://github.com/hurxxxx/trailtag.git
cd trailtag- Install dependencies
npm installnpm run start- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
npm run start:https- Frontend: https://localhost:5173
- Backend API: http://localhost:3001
📱 Note: HTTPS is required for camera access on mobile browsers.
npm run build:prod
npm run server:prodOr use the combined command:
npm run deployProduction server: http://localhost:9883
| Field | Value |
|---|---|
| Username | admin |
| Password | admin123 |
.env- Development configuration.env.production- Production configuration
# Development
VITE_API_URL=http://localhost:3001/api
# Production
VITE_API_URL=/api- Login with the default admin account
- Create your first learning program
- QR codes are automatically generated for each program
- Add student and parent accounts
- Students can check in by scanning QR codes
| Command | Description |
|---|---|
npm run start |
Start development server (HTTP) |
npm run start:https |
Start development server (HTTPS) |
npm run build:prod |
Build for production |
npm run server:prod |
Start production server |
npm run deploy |
Build and deploy |
npm run i18n:extract |
Extract translation keys |
Supported languages:
- English (en)
- Korean (ko)
- Japanese (ja)
Translation files: public/locales/{language}/translation.json
- Fork the repository
- Create your feature branch (
git checkout -b feature/NewFeature) - Commit your changes (
git commit -m 'Add NewFeature') - Push to the branch (
git push origin feature/NewFeature) - Open a Pull Request
MIT License - see the LICENSE file for details.