Stathis is an AI-powered physical education platform designed to revolutionize learning through motion recognition, real-time health vitals tracking, and gamification. The platform consists of three main components: a mobile app for students, a web dashboard for teachers, and a backend API server.
This repository contains the source code, documentation, and necessary resources for Stathis. The key directories and files include:
/backend- Spring Boot Java backend API server with PostgreSQL database./mobile- Android Kotlin mobile application for students./web- Next.js web dashboard for teachers and administrators.README.md- Project overview and setup instructions.
| Full Name | GitHub Profile |
|---|---|
| Leones, Michael Harry P. | Saiiph |
| Matunog, Margaret Anne C. | marginggg |
| Porter, Nicolo Ryne A. | nicoryne |
| Quijote, John Kenny C. | mnemosyneiscool |
| San Diego, Gabe Jeremy R. | gabejeremy |
- ๐ค AI-Powered Posture Tracking โ Real-time posture monitoring and correction using ONNX models
- โ Health Connect Integration โ Syncs with Android Health Connect for continuous vitals tracking
- ๐ฑ Camera-Based Motion Detection โ Uses CameraX and ML Kit for pose detection during exercises
- ๐ฎ Gamified Learning โ Interactive challenges, achievements, and progress tracking
- ๐ Real-time Vitals Monitoring โ Heart rate and oxygen saturation tracking during exercises
- ๐ซ Classroom Management โ Join classrooms, view assignments, and track progress
- ๐ Biometric Authentication โ Secure login using fingerprint/face recognition
- ๐ฅ Classroom Management โ Create and manage multiple classrooms with student enrollment
- ๐ Real-time Monitoring โ Live vitals tracking of students during exercise sessions
- ๐ Task & Template Creation โ Create exercises, lessons, and quizzes with customizable templates
- ๐ Analytics & Reporting โ Comprehensive student progress analytics and performance reports
- ๐ฏ Student Progress Tracking โ Individual and class-wide progress monitoring
- ๐ Alert System โ Health alerts and notifications for student safety
- ๐ JWT Authentication โ Secure user authentication and authorization
- ๐ก WebSocket Support โ Real-time communication for vitals streaming
- ๐ค AI Model Integration โ ONNX runtime for posture analysis
- ๐ง Email Services โ User verification and notification system
- ๐๏ธ PostgreSQL Database โ Robust data storage and management
- ๐ RESTful APIs โ Comprehensive API endpoints for all platform features
Stathis follows a three-tier architecture pattern:
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Mobile App โ โ Web Dashboard โ โ Backend API โ
โ (Students) โ โ (Teachers) โ โ (Spring Boot) โ
โ โ โ โ โ โ
โ โข Android/Kotlinโ โ โข Next.js/React โ โ โข Java/Spring โ
โ โข Jetpack Composeโ โ โข TypeScript โ โ โข PostgreSQL โ
โ โข CameraX/ML Kitโ โ โข Tailwind CSS โ โ โข JWT Auth โ
โ โข Health Connectโ โ โข ShadCN/UI โ โ โข WebSocket โ
โ โข Biometric Authโ โ โข TanStack Queryโ โ โข ONNX Runtime โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโ
โ PostgreSQL โ
โ Database โ
โโโโโโโโโโโโโโโโโโโ
- Frontend (Web): Next.js 15, React 19, TypeScript, Tailwind CSS, ShadCN/UI
- Mobile: Android (Kotlin), Jetpack Compose, CameraX, ML Kit, Health Connect
- Backend: Spring Boot 3.4, Java 17, PostgreSQL, JWT, WebSocket
- AI/ML: ONNX Runtime, Pose Detection Models
- Authentication: JWT with Spring Security
- Real-time Communication: WebSocket for vitals streaming
We follow the Gitflow workflow:
main- Stable production-ready branch.dev- Latest development updates.feature/{feature-name}- Feature branches for new functionalities.hotfix/{issue-name}- Quick fixes for critical bugs.bugfix/{issue-name}- Bug fixes and minor patches.
Prerequisites:
- Node.js 18+ & npm installed
- Java 17+ and Maven 3.6+
- PostgreSQL 13+ database
- Git for version control
- Android Studio (for mobile development)
- Android SDK API 30+ (for mobile development)
-
Clone the repository:
git clone https://github.com/nicoryne/stathis.git cd stathis -
Backend Setup:
cd backend/stathis mvn clean install- Configure database connection in
src/main/resources/application.properties - Update PostgreSQL connection details
- Run the application:
mvn spring-boot:run
- Configure database connection in
-
Web Dashboard Setup:
cd web/stathis-web npm install- Copy environment variables:
cp .env.example .env - Update the
.envfile with backend API URL and other credentials - Run the development server:
npm run dev - Open
http://localhost:3000in your browser
- Copy environment variables:
-
Mobile App Setup:
cd mobile/stathis-mobile- Open the project in Android Studio
- Configure the backend API URL in the app's configuration
- Build and run on an Android device or emulator
Each component requires specific environment variables:
- Backend: Database connection, JWT secrets, email configuration
- Web: Backend API URL, authentication settings
- Mobile: Backend API URL, Health Connect permissions
- Framework: Spring Boot 3.4.5 with Java 17
- Database: PostgreSQL with JPA/Hibernate
- Security: Spring Security with JWT authentication
- Real-time: WebSocket for vitals streaming
- AI/ML: ONNX Runtime for posture analysis
- Documentation: SpringDoc OpenAPI 3
- Build Tool: Maven
- Framework: Next.js 15 with React 19
- Language: TypeScript
- Styling: Tailwind CSS 4 with ShadCN/UI components
- State Management: TanStack Query for server state
- Forms: React Hook Form with Zod validation
- Charts: Recharts for data visualization
- Build Tool: npm
- Language: Kotlin with Jetpack Compose
- Architecture: MVVM with Dagger Hilt dependency injection
- UI: Material 3 Design with Jetpack Compose
- Camera: CameraX for pose detection
- ML: ML Kit for pose detection and analysis
- Health: Android Health Connect for vitals data
- Networking: Retrofit with OkHttp
- Build Tool: Gradle with Kotlin DSL
The backend provides comprehensive RESTful APIs and WebSocket endpoints:
- Authentication: User registration, login, password reset
- User Management: Profile management, user roles
- Classroom Management: Create, join, and manage classrooms
- Task Management: Create and manage exercises, lessons, and quizzes
- Progress Tracking: Student progress and analytics
- Vitals Monitoring: Health data collection and analysis
- Posture Analysis: AI-powered posture detection and feedback
- Real-time Vitals: Live health data streaming from mobile to web dashboard
- Exercise Monitoring: Real-time exercise session tracking
- Swagger UI: Available at
http://localhost:8080/swagger-ui.htmlwhen backend is running - OpenAPI 3: Complete API specification in JSON/YAML format
We welcome contributions! Please give us a message if you'd like to contribute!
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and test thoroughly
- Commit your changes:
git commit -m 'Add your feature' - Push to your branch:
git push origin feature/your-feature-name - Create a Pull Request
- Follow the existing code style and conventions
- Write comprehensive tests for new features
- Update documentation as needed
- Ensure all components work together properly