NexTime là ứng dụng hỗ trợ quản lý lịch trình nhóm, tạo checklist, và tìm giờ rảnh chung. Xây dựng bằng React Native + Expo.
Lưu ý: Thay
YOUR_GITHUB_USERNAMEvàYOUR_REPO_NAMEbằng thông tin GitHub thực tế.
- Node.js ≥ 18
- npm ≥ 9
cd mobile
npm install --legacy-peer-depscd mobile
npm run testSau khi chạy xong:
- Kết quả test hiển thị trực tiếp trên Terminal
- Coverage report (HTML):
mobile/test-report/index.html - Coverage raw data:
mobile/coverage/lcov.info(dùng cho SonarCloud)
| Metric | Ngưỡng |
|---|---|
| Lines | ≥ 70% |
mobile/
├── HomeScreen.tsx # Màn hình chính
├── HomeScreen.test.tsx # 4 test cases
├── OnboardingScreen.tsx # Màn hình giới thiệu
├── OnboardingScreen.test.tsx # 5 test cases
└── jest.config.js # Cấu hình Jest + coverage
HomeScreen.test.tsx (4 tests):
renders without crashing– Kiểm tra màn hình load thành côngrenders create schedule button– Kiểm tra nút tạo lịch trình tồn tạihandles create schedule button press without errors– Ấn nút không gây crashcalls onBack when logout button is pressed– Kiểm tra callback khi ấn Quay lại
OnboardingScreen.test.tsx (5 tests):
renders without crashing– Kiểm tra màn hình load thành côngrenders login and register buttons– Kiểm tra cả 2 nút hiển thịcalls onNavigate when login button is pressed– Callback đăng nhập hoạt độngcalls onNavigate when register button is pressed– Callback đăng ký hoạt độnghandles button presses without errors when no callback provided– Không crash khi không có callback
- React Native 0.81 + Expo 54
- NativeWind (TailwindCSS cho React Native)
- Jest + jest-expo + @testing-library/react-native
- SonarCloud (Code Quality & Security)
- GitHub Actions (CI/CD)
cd mobile
npm start # Expo Dev Tools + QR Code
npm run android # Android emulator
npm run ios # iOS simulator (macOS only)