A secure event logging and exporting system with comprehensive admin management.
-
Secure Admin Authentication
- JWT-based authentication with session management
- Strong password requirements
- Account lockout after 3 failed login attempts
- Password reset functionality
-
Admin Management
- Invite new admins via email
- Remove/deactivate admin accounts
- Reset passwords for other admins
- Comprehensive activity logging
-
Event Logging
- RESTful API for logging events
- Flexible event structure with custom data
- Query events by userId, eventType, and name
-
Data Export
- Export all event data as CSV
- Compressed ZIP delivery via email
- Secure access control
-
Activity Monitoring
- Track all admin actions
- View login attempts and security events
- Filter and paginate activity logs
-
Copy
.env.exampleto.envand configure:cp .env.example .env
-
Install dependencies:
npm install
-
Ensure MongoDB is running
-
Start the server:
npm run dev
On first startup, an initial admin account will be created:
- Email: Set via
INITIAL_ADMIN_EMAILenv var (defaults to admin@mobyinc.com) - Password: Randomly generated and sent via email (or displayed in console if email fails)
POST /auth/login- Admin loginPOST /events- Log an event (public endpoint)
GET /- Admin dashboardGET /events- Query eventsPOST /export- Request data exportGET /admin/manage- Admin management interfacePOST /admin/admins/invite- Invite new adminDELETE /admin/admins/:id- Remove adminPOST /admin/admins/:id/reset-password- Reset admin passwordGET /admin/activity- View activity logs
- All passwords are hashed using bcrypt
- JWT tokens expire after 24 hours
- Sessions are stored in MongoDB
- Account lockout after 3 failed login attempts (2 hour lockout)
- All admin actions are logged
- HTTPS required in production
See .env.example for all required environment variables.