{"id":28569352,"url":"https://github.com/frckbrice/educonnect-platform-mobile","last_synced_at":"2026-05-07T01:40:02.944Z","repository":{"id":295286096,"uuid":"973177024","full_name":"frckbrice/Educonnect-platform-mobile","owner":"frckbrice","description":"This is your Expo project repository created from Expo Application Services (EAS)","archived":false,"fork":false,"pushed_at":"2025-05-24T16:58:43.000Z","size":8768,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-24T17:37:49.240Z","etag":null,"topics":["expo","expo-router","html-css-javascript","react-native","react-native-iap","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frckbrice.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-26T12:34:15.000Z","updated_at":"2025-05-24T17:37:15.000Z","dependencies_parsed_at":"2025-05-24T17:48:06.436Z","dependency_job_id":null,"html_url":"https://github.com/frckbrice/Educonnect-platform-mobile","commit_stats":null,"previous_names":["frckbrice/educonnect-platform-mobile"],"tags_count":0,"template":false,"template_full_name":"expo/expo-template-default","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frckbrice%2FEduconnect-platform-mobile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frckbrice%2FEduconnect-platform-mobile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frckbrice%2FEduconnect-platform-mobile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frckbrice%2FEduconnect-platform-mobile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frckbrice","download_url":"https://codeload.github.com/frckbrice/Educonnect-platform-mobile/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frckbrice%2FEduconnect-platform-mobile/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259114722,"owners_count":22807255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expo","expo-router","html-css-javascript","react-native","react-native-iap","typescript"],"created_at":"2025-06-10T17:14:37.452Z","updated_at":"2026-05-07T01:40:02.932Z","avatar_url":"https://github.com/frckbrice.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# EduConnected Mobile Platform \n\n\nA comprehensive cross-platform mobile learning management system built with React Native and Expo, designed to provide an exceptional educational experience for both learners and educators.\n\n\n##  Design Philosophy\n\nOur UI/UX design focuses on:\n- **Accessibility**: Inclusive design for all users\n- **Modern Aesthetics**: Clean, intuitive interfaces\n- **Mobile-First**: Optimized for mobile learning experiences\n- **Consistent Design Language**: Unified visual identity across all screens\n\n##  Platform Support\n\n- **iOS**: Native iOS experience with platform-specific optimizations\n- **Android**: Material Design principles with Android-specific features\n- **Web**: Responsive web interface for cross-platform accessibility\n\n---\n\n##  Features\n\n### Core Learning Features\n- **Course Management**: Comprehensive course catalog with search and filtering\n- **Interactive Lessons**: Video lessons with progress tracking\n- **Progress Monitoring**: Real-time learning analytics and achievements\n- **Social Learning**: Community features and peer collaboration\n\n### Technical Features\n- **Cross-Platform**: Single codebase for iOS, Android, and Web\n- **Offline Support**: Download courses for offline learning\n- **Push Notifications**: Stay updated with course progress and new content\n- **Secure Authentication**: OAuth 2.0 with Google and GitHub integration\n\n### Developer Experience\n- **TypeScript**: Full type safety and better development experience\n- **Modern Tooling**: ESLint, Prettier, Husky, and comprehensive testing\n- **Component Library**: Reusable UI components with Storybook documentation\n- **Performance**: Optimized for smooth animations and fast loading\n\n## Technology Stack\n\n### Frontend Framework\n- **React Native**: Cross-platform mobile development\n- **Expo**: Development platform and build tools\n- **TypeScript**: Type-safe development\n- **React Navigation**: Native navigation components\n\n### State Management \u0026 Data\n- **React Context**: Lightweight state management\n- **Axios**: HTTP client for API communication\n- **Secure Storage**: Encrypted credential storage\n- **Async Storage**: Local data persistence\n\n### UI \u0026 Animation\n- **React Native Reanimated**: Smooth, native animations\n- **Moti**: Declarative animation library\n- **Expo Blur**: Native blur effects\n- **Custom Components**: Tailored UI components\n\n### Development Tools\n- **ESLint**: Code quality and consistency\n- **Prettier**: Automated code formatting\n- **Jest**: Comprehensive testing framework\n- **Husky**: Git hooks for quality assurance\n\n##  Prerequisites\n\n- **Node.js** 18+\n- **Yarn** 1.22.0 or higher (recommended) or **npm** 8.0.0 or higher\n- **Expo CLI** latest version\n- **Git** 2.20.0 or higher\n- **iOS Simulator** (for iOS development, macOS only)\n- **Android Studio** (for Android development)\n\n##  Quick Setup\n\n### Option 1: Automated Setup (Recommended)\n```bash\n# Clone the repository\ngit clone https://github.com/franckbriceavom/educonnected-mobile-platform.git\ncd educonnected-mobile-platform\n\n# Run automated setup script\nnode scripts/setup-dev.js\n```\n\n### Option 2: Manual Setup\n```bash\n# Clone the repository\ngit clone https://github.com/franckbriceavom/educonnected-mobile-platform.git\ncd educonnected-mobile-platform\n\n# Install dependencies\nyarn install\n\n# Setup environment\ncp env.example .env\n# Edit .env with your configuration values\n\n# Setup Git hooks\nyarn prepare\n```\n\n### Environment Configuration\n```bash\n# Copy environment template\ncp env.example .env\n\n# Required environment variables:\nEXPO_PUBLIC_EAS_PROJECT_ID=your_eas_project_id\nEXPO_PUBLIC_BASE_URL=your_api_base_url\nGITHUB_CLIENT_ID=your_github_client_id\n# ... see env.example for complete list\n```\n\n##  Development Commands\n\n### Core Development\n```bash\nyarn start               # Start Expo development server\nyarn android             # Run on Android device/emulator\nyarn ios                 # Run on iOS simulator\nyarn web                 # Run on web browser\n```\n\n### Testing \u0026 Quality\n```bash\nyarn test                # Run tests with coverage\nyarn lint                # Lint code\nyarn lint:fix            # Fix linting issues\nyarn format              # Format code with Prettier\nyarn format:check        # Check code formatting\n```\n\n### Build \u0026 Deploy\n```bash\nyarn build:android       # Build Android APK/AAB\nyarn build:ios           # Build iOS app\nyarn submit:android      # Submit to Google Play Store\nyarn submit:ios          # Submit to Apple App Store\n```\n\n### Project Management\n```bash\nyarn clean               # Clean and reset project\n```\n\n## Project Structure\n\n```\neduconnected_platform_mobile/\n├── app/                    # Expo Router app directory\n│   ├── (routes)/          # Main app routes\n│   ├── api/               # API route handlers\n│   └── _layout.tsx        # Root layout component\n├── components/             # Reusable UI components\n│   ├── common/            # Shared components\n│   ├── screen/            # Screen-specific components\n│   └── card/              # Card components\n├── context/                # React Context providers\n├── hooks/                  # Custom React hooks\n├── utils/                  # Utility functions\n├── config/                 # Configuration files\n├── assets/                 # Static assets\n├── public/                 # Public assets and images\n│   └── images/            # App screenshots and UI assets\n├── scripts/                # Development scripts\n├── .storybook/             # Storybook configuration\n└── docs/                   # Documentation\n```\n\n##  Testing Strategy\n\n### Testing Framework\n- **Jest**: Unit and integration testing\n- **React Native Testing Library**: Component testing utilities\n- **Coverage Requirements**: 70% minimum coverage for all metrics\n- **Test Types**: Unit, integration, and component tests\n\n### Testing Commands\n```bash\nyarn test                 # Run all tests\nyarn test:coverage        # Generate coverage report\nyarn test:ci              # CI-optimized test run\n```\n\n### Test Structure\n```\n__tests__/                # Test files\n├── components/           # Component tests\n├── hooks/                # Hook tests\n├── utils/                # Utility function tests\n└── integration/          # Integration tests\n```\n\n##  Code Quality\n\n### Linting \u0026 Formatting\n- **ESLint**: Advanced code quality with TypeScript and React Native rules\n- **Prettier**: Consistent code formatting across the project\n- **Husky**: Git hooks for pre-commit quality checks\n- **Lint-staged**: Run linters only on staged files\n\n### TypeScript Configuration\n- **Strict Mode**: Comprehensive type checking\n- **Path Aliases**: Clean import statements with `@/` prefixes\n- **Type Safety**: Full type coverage for better development experience\n\n### Git Hooks\n- **Pre-commit**: Automatic linting and formatting\n- **Commit-msg**: Conventional commit message validation\n\n## Performance Optimization\n\n### React Native Optimizations\n- **Native Driver**: Hardware-accelerated animations\n- **Image Optimization**: Efficient image loading and caching\n- **Lazy Loading**: On-demand component loading\n- **Memory Management**: Optimized memory usage\n\n### Build Optimizations\n- **Metro Bundler**: Fast JavaScript bundling\n- **Tree Shaking**: Remove unused code\n- **Code Splitting**: Efficient bundle distribution\n\n##  Security Features\n\n### Authentication\n- **OAuth 2.0**: Secure social authentication\n- **JWT Tokens**: Stateless authentication\n- **Secure Storage**: Encrypted credential storage\n- **Token Refresh**: Automatic token renewal\n\n### Data Protection\n- **HTTPS Only**: Secure API communication\n- **Input Validation**: Comprehensive data validation\n- **XSS Protection**: Cross-site scripting prevention\n\n## Deployment\n\n### EAS Build (Expo Application Services)\n\nBuilds run in the cloud via EAS. Profiles in `eas.json`: `development`, `preview`, `production`.\n\n**Local builds:**\n\n```bash\neas build --platform android --profile production\neas build --platform ios --profile production\neas build --platform all --profile production\n```\n\n**EAS Workflows:** The repo uses `.eas/workflows/build.yml` (EAS native CI/CD). It runs:\n- On push to `main` or version tags (`v*`, e.g. `v1.0.0`): builds Android and iOS with the `production` profile.\n- Manually: `eas workflow:run .eas/workflows/build.yml` and choose platform (all / android / ios).\n\nLink your GitHub repo in the [Expo project GitHub settings](https://expo.dev/accounts/[account]/projects/[project]/github) so push/tag events trigger builds. No `EXPO_TOKEN` in GitHub is required for EAS Workflows.\n\n### App store submission\n\nAfter a successful build, submit from the EAS dashboard or locally:\n\n```bash\neas submit --platform android --profile production\neas submit --platform ios --profile production\n```\n\n## Contributing\n\nWe welcome contributions. See [Contributing Guide](docs/CONTRIBUTING.md) for:\n- Code of Conduct\n- Development Setup\n- Pull Request Process\n- Code Review Guidelines\n\n## Documentation\n\n- [Development Guide](docs/DEVELOPMENT.md)\n- [Contributing Guide](docs/CONTRIBUTING.md)\n- [Testing Guide](docs/TESTING.md)\n\n##  License\n\nThis project is licensed under the MIT License -\n\n##  Acknowledgments\n\n- **Expo Team**: For the amazing development platform\n- **React Native Community**: For continuous improvements\n- **Open Source Contributors**: For making this project possible\n\n##  Support\n\n- **Issues**: [GitHub Issues](https://github.com/franckbriceavom/educonnected-mobile-platform/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/franckbriceavom/educonnected-mobile-platform/discussions)\n- **Documentation**: [Project Wiki](https://github.com/franckbriceavom/educonnected-mobile-platform/wiki)\n\n---\n\nBuilt by the EduConnected Team.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrckbrice%2Feduconnect-platform-mobile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrckbrice%2Feduconnect-platform-mobile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrckbrice%2Feduconnect-platform-mobile/lists"}