A safety-critical mobile application for nuclear industry supervisors and RPOs to track radiation doses, manage workers, and ensure regulatory compliance.
- β Express server with TypeScript
- β JWT authentication with refresh tokens
- β PostgreSQL database configuration with Sequelize
- β Comprehensive error handling and logging
- β Health check endpoints
- β Security middleware (helmet, CORS, rate limiting)
- β Environment variable configuration
- β ESLint and Jest setup
- β React Native scaffold with TypeScript
- β Navigation setup with React Navigation
- β Authentication context and hooks
- β Network and sync context providers
- β Basic screen structure (Login, Dashboard, Dose Entry, etc.)
- β API service configuration
- β Offline-first architecture foundation
- β GitHub Actions workflow for lint/test/build
- β Monorepo structure with workspaces
- β Environment variable templates
- β Comprehensive testing setup
RadRoster/
βββ backend/ # Node.js + Express API
β βββ src/
β β βββ config/ # Database, API config
β β βββ middleware/ # Auth, error handling
β β βββ routes/ # API endpoints
β β βββ services/ # Business logic
β β βββ utils/ # Utilities and logging
β β βββ test/ # Test setup
β βββ package.json
βββ mobile-app/ # React Native app
β βββ src/
β β βββ components/ # Reusable components
β β βββ contexts/ # React contexts
β β βββ hooks/ # Custom hooks
β β βββ screens/ # App screens
β β βββ services/ # API services
β β βββ config/ # App configuration
β βββ package.json
βββ .github/workflows/ # CI/CD pipelines
βββ env.sample # Environment variables template
βββ README.md
- Node.js 18+
- PostgreSQL 15+
- React Native development environment
- Git
-
Install dependencies:
cd backend npm install -
Configure environment:
cp ../env.sample .env # Edit .env with your database and API credentials -
Start development server:
npm run dev
-
Run tests:
npm test
-
Install dependencies:
cd mobile-app npm install -
iOS setup (macOS only):
cd ios && pod install
-
Start Metro bundler:
npm start
-
Run on device/simulator:
# iOS npm run ios # Android npm run android
The app uses JWT tokens with refresh token rotation:
- Access Token: 15 minutes
- Refresh Token: 7 days
- Demo Credentials:
- Email:
admin@radroster.com - Password:
admin123
- Email:
cd backend
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage reportcd mobile-app
npm test # Run all tests- Authentication system
- Basic app structure
- CI/CD pipeline
- Environment configuration
- Database models (Worker, Job, DoseEntry)
- CRUD operations
- React Native forms
- Dose entry and extrapolation
- Forecasting algorithms
- Dashboard with charts
- Dose summaries
- Alert system
- Push notifications
- Training records
- Compliance reporting
- Offline sync
- End-to-end testing
- TypeScript: Strict mode enabled
- ESLint: Airbnb config with TypeScript
- Prettier: Code formatting
- Jest: Unit and integration testing
- All dose calculations validated
- Comprehensive error handling
- Audit trail logging
- Nuclear industry security standards
- SQLite local storage
- Conflict resolution
- Sync status indicators
- Graceful network failure handling
POST /api/auth/login- User loginPOST /api/auth/refresh- Refresh tokenPOST /api/auth/logout- User logoutGET /api/auth/me- Current user
GET /health- Basic health checkGET /health/detailed- Detailed health with DB
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is proprietary software for nuclear industry use.
For technical support or questions about the radiation dose tracking system, please contact the development team.