A full-stack web application for managing Sprint Instructor onboarding at Codeit.
This portal provides a structured onboarding process for Sprint instructors, tracking their progress through document reviews, video content, quizzes, file submissions, and checklists.
- Frontend: React + TypeScript + Vite + Tailwind CSS
- Backend: Java 17 + Spring Boot 3.2.1 + PostgreSQL 16
- Authentication: JWT-based with role separation (PM / Instructor)
- Storage: AWS S3 for video files (optional, falls back to local storage)
- Deployment: AWS (ECS/RDS/S3) or Railway.app (dev)
- Java 17+ (OpenJDK recommended)
- Node.js 18+ and npm
- Docker (for PostgreSQL)
- Maven 3.6+
./start-all.shThen follow the on-screen instructions to start backend and frontend.
cd backend && docker-compose up -d
# MailHog Web UI: http://localhost:8025cd backend && mvn spring-boot:runcd frontend && npm run devFor security reasons, no default accounts or sample DB data are committed.
- Create a PM account via the registration flow (email verification uses MailHog in local dev).
- Or set up your own test data in your local database.
.env.example as a template. Never commit actual credentials to the repository! Change all default credentials before deploying to production!
- Frontend: http://localhost:5173
- Backend API: http://localhost:8080/api
- Database: localhost:5432
- MailHog (이메일 테스팅): http://localhost:8025
- Register and manage instructors
- Create and manage step templates
- Create and manage content modules
- Assign onboarding steps to instructors
- Edit task content (even while instructor is in progress)
- Track instructor progress
- View audit logs
- Manage tracks
- Step-by-step onboarding guidance
- Document and video content
- Interactive quizzes (objective/subjective)
- File upload for assignments
- Progress tracking
- Checklist completion
- Type A: Document + Quiz
- Type B: Video + Quiz
- Type C: File Upload
- Type D: Interactive Checklist
sprint-tutor-flow/
├── backend/ # Spring Boot (Java 17)
│ ├── src/main/java/ # Controllers, services, repositories, entities
│ ├── src/main/resources/
│ │ ├── db/migration/ # Flyway SQL migrations
│ │ └── application*.yml
│ ├── docker-compose.yml # PostgreSQL + MailHog
│ ├── pom.xml
│ └── README.md
│
├── frontend/ # React + TypeScript + Vite
│ ├── src/
│ │ ├── pages/ # Route-level pages
│ │ ├── components/ # UI + modules (DocumentQuiz, VideoQuiz, etc.)
│ │ ├── services/api.ts # API client
│ │ ├── contexts/ # Auth state
│ │ └── hooks/, config/, design-system/
│ ├── public/
│ └── README.md
│
├── scripts/ # Dev utilities
├── start-all.sh
├── stop-all.sh
├── .env.example
├── CLAUDE.md # Development guide
├── DEPLOYMENT.md
└── README.md
- JWT-based authentication
- BCrypt password hashing
- Role-based access control (RBAC)
- Email verification for PM registration
- Optimistic locking for concurrent edits
- Input validation
- CORS configuration
- File upload security
cd backend && mvn test# Health check endpoint
curl http://localhost:8080/api/health
# Test authentication (replace with your actual credentials)
curl http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{"identifier":"your-email@example.com","password":"your-password"}'./stop-all.shSee DEPLOYMENT.md for detailed deployment guide and environment variable configuration.
See DEPLOYMENT.md and backend README for production deployment.
Before Production:
⚠️ Change all default credentials - Use strong, unique passwords- Set secure JWT secret (generate a strong random string)
- Configure production database credentials
- Set up S3 for video storage (optional)
- Enable HTTPS/SSL
- Configure all environment variables (use
.env.exampleas a template) - Never commit
.envfiles or actual credentials to the repository
Essential:
.env.example- Environment variables templateCLAUDE.md- Development guide for Claude CodeDEPLOYMENT.md- Railway.app deployment guide
Component-Specific:
backend/README.md- Backend API and database setupbackend/MAILHOG_SETUP.md- Email testing (MailHog)backend/AWS_S3_SETUP_GUIDE.md- S3 video storage (optional)frontend/README.md- Frontend development guide
Copyright © 2026 Codeit