{"id":23670092,"url":"https://github.com/manuelalejandrojimeneztorres/surveyhub-mobile","last_synced_at":"2026-05-05T23:31:29.077Z","repository":{"id":270146116,"uuid":"904819418","full_name":"manuelalejandrojimeneztorres/surveyhub-mobile","owner":"manuelalejandrojimeneztorres","description":"Cross-platform app for Android, iOS, and web using Ionic, Angular, and Capacitor. Enables survey creation, management, and analysis with JWT-based authentication, role-based access control, and a responsive design.","archived":false,"fork":false,"pushed_at":"2025-02-22T19:13:21.000Z","size":640,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-21T04:09:22.275Z","etag":null,"topics":["angular","capacitor","cross-platform","ionic","jwt","rxjs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manuelalejandrojimeneztorres.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2024-12-17T16:00:36.000Z","updated_at":"2025-02-24T11:03:21.000Z","dependencies_parsed_at":"2024-12-28T20:20:31.025Z","dependency_job_id":"64cf84cf-5a6d-4392-bf36-1e9ea875a64d","html_url":"https://github.com/manuelalejandrojimeneztorres/surveyhub-mobile","commit_stats":null,"previous_names":["manuelalejandrojimeneztorres/surveyhub-mobile"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/manuelalejandrojimeneztorres/surveyhub-mobile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manuelalejandrojimeneztorres%2Fsurveyhub-mobile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manuelalejandrojimeneztorres%2Fsurveyhub-mobile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manuelalejandrojimeneztorres%2Fsurveyhub-mobile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manuelalejandrojimeneztorres%2Fsurveyhub-mobile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manuelalejandrojimeneztorres","download_url":"https://codeload.github.com/manuelalejandrojimeneztorres/surveyhub-mobile/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manuelalejandrojimeneztorres%2Fsurveyhub-mobile/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32672518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["angular","capacitor","cross-platform","ionic","jwt","rxjs"],"created_at":"2024-12-29T09:30:24.407Z","updated_at":"2026-05-05T23:31:29.058Z","avatar_url":"https://github.com/manuelalejandrojimeneztorres.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SurveyHub Mobile Application\n\n![Ionic](https://img.shields.io/badge/Ionic-7.2.0-blueviolet?style=for-the-badge\u0026logo=ionic)\n![Angular](https://img.shields.io/badge/Angular-18.0.0-red?style=for-the-badge\u0026logo=angular)\n![Capacitor.js](https://img.shields.io/badge/Capacitor.js-6.1.2-brightgreen?style=for-the-badge\u0026logo=capacitor)\n![TypeScript](https://img.shields.io/badge/TypeScript-5.4.0-blue?style=for-the-badge\u0026logo=typescript)\n![JWT](https://img.shields.io/badge/JWT-Security-critical?style=for-the-badge\u0026logo=jsonwebtokens)\n![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=for-the-badge)\n![Build Status](https://img.shields.io/github/actions/workflow/status/manuelalejandrojimeneztorres/surveyhub-mobile/mobile-ci.yml?style=for-the-badge)\n![Platform Support](https://img.shields.io/badge/Platform-Android%20%7C%20iOS%20%7C%20Web-orange?style=for-the-badge)\n![Dependencies](https://img.shields.io/badge/Dependencies-Up%20to%20date-brightgreen?style=for-the-badge)\n\n## Description\n\nThe **SurveyHub Mobile Application** is a state-of-the-art cross-platform hybrid app engineered to facilitate the efficient creation, management, and analysis of online surveys. Built with cutting-edge technologies like **Ionic**, **Angular**, and **Capacitor**, this application ensures a seamless, responsive, and secure user experience across Android, iOS, and web platforms. It integrates with the **SurveyHub Backend** via a robust RESTful API, offering powerful capabilities for user authentication, role-based access control, and dynamic survey interactions.\n\n---\n\n## Table of Contents\n\n1. [Key Features](#key-features)\n2. [Architecture Overview](#architecture-overview)\n3. [Prerequisites](#prerequisites)\n4. [Installation](#installation)\n   - [Project Setup](#project-setup)\n   - [Building and Running the App](#building-and-running-the-app)\n5. [Technologies and Tools Used](#technologies-and-tools-used)\n6. [Dependencies](#dependencies)\n7. [Troubleshooting](#troubleshooting)\n8. [Contributing Guidelines](#contributing-guidelines)\n9. [Support](#support)\n10. [License](#license)\n11. [Acknowledgments](#acknowledgments)\n\n---\n\n## Key Features\n\n- **Cross-Platform Compatibility**: Unified experience across Android, iOS, and web platforms using **Ionic** and **Capacitor**.\n- **Secure Authentication**:\n  - JWT-based login and session management.\n  - Role-based access control with predefined roles (System Administrator, Survey Manager, and Respondent).\n- **Survey Management**:\n  - Create, update, and analyze surveys in real-time.\n  - Validate input dynamically with clear feedback for data integrity.\n- **User Personalization**:\n  - Update profile information, including secure password changes with BCrypt hashing.\n  - Add profile pictures using **Capacitor Camera** or device file selection.\n- **Enhanced User Experience**:\n  - Dark mode support for improved accessibility.\n  - Search and filter functionality for efficient data retrieval.\n  - Fully responsive design optimized for various screen sizes.\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## Architecture Overview\n\nThe application adopts a **service-oriented architecture**, seamlessly integrating the following components:\n\n- **Frontend**:\n  - Built with **Ionic Framework** and **Angular**, leveraging reusable components and modular architecture.\n  - Uses **RxJS** for state management and reactive programming.\n- **Backend Integration**:\n  - Communicates with the **SurveyHub Backend** via RESTful API endpoints.\n  - Ensures secure data transmission using JWT for authentication and role-based access control.\n- **Capacitor Plugins**:\n  - Utilized for native device functionalities, including camera access and file management.\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## Prerequisites\n\nEnsure the following tools and software are installed on your system:\n\n- [Git](https://git-scm.com/downloads) - For version control\n- [Node.js (20.17.0)](https://nodejs.org/) - JavaScript runtime\n- [npm (10.9.0)](https://www.npmjs.com/) - Package manager\n- [Ionic CLI](https://ionicframework.com/docs/cli) - For managing and serving the app\n- **Optional**:\n  - [Android Studio](https://developer.android.com/studio) - For Android builds\n  - [Xcode](https://developer.apple.com/xcode/) - For iOS builds (macOS only)\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## Installation\n\n### Project Setup\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/manuelalejandrojimeneztorres/surveyhub-mobile.git\n   ```\n\n2. Navigate to the project directory:\n\n   ```bash\n   cd surveyhub-mobile\n   ```\n\n3. Install the dependencies:\n\n   ```bash\n   npm install\n   ```\n\n\u003c!--\n### Environment Configuration\n\n1. Create a `.env` file in the root directory and define the following variables:\n\n   ```env\n   API_BASE_URL=http://localhost:8080\n   JWT_SECRET=YourStrongJWTSecret\n   ```\n\n   Ensure that `API_BASE_URL` corresponds to the backend server address.\n --\u003e\n\n[🔼 Back to Top](#table-of-contents)\n\n### Building and Running the App\n\n#### Run in a Browser\n\n1. Start the development server:\n\n   ```bash\n   ionic serve\n   ```\n\n2. Access the app via your browser at `http://localhost:8100`.\n\n#### Run on Android\n\n1. Add the Android platform:\n\n   ```bash\n   ionic capacitor add android\n   ```\n\n2. Open the project in Android Studio:\n\n   ```bash\n   ionic capacitor open android\n   ```\n\n3. Build and run the app on an emulator or connected device.\n\n#### Run on iOS\n\n1. Add the iOS platform:\n\n   ```bash\n   ionic capacitor add ios\n   ```\n\n2. Open the project in Xcode:\n\n   ```bash\n   ionic capacitor open ios\n   ```\n\n3. Build and run the app on an iOS simulator or device.\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## Technologies and Tools Used\n\n- **Frameworks and Libraries**:\n  - Ionic (7.2.0): Hybrid app framework\n  - Angular (18.0.0): Frontend framework\n  - Capacitor.js (6.1.2): Cross-platform runtime\n  - TypeScript (5.4.0): Programming language\n\n- **Development Tools**:\n  - Visual Studio Code: Code editor\n  - Android Studio: For Android builds\n  - Xcode: For iOS builds\n  - Google Chrome: Browser for testing\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## Dependencies\n\nKey dependencies include:\n\n- `@angular/core`: Angular framework\n- `@capacitor/camera`: Access to device cameras\n- `@capacitor/filesystem`: File management\n- `@ionic/angular`: Ionic framework components\n- `rxjs`: Reactive programming library\n\n\u003e [!NOTE]\n\u003e Refer to the `package.json` file for a complete list of dependencies.\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## Troubleshooting\n\n### Common Issues\n\n- **API Connection Errors**:\n  - Verify that the backend server is running\u003c!-- and the `API_BASE_URL` is correctly configured in the `.env` file --\u003e.\n\n- **Build Errors**:\n  - Ensure all dependencies are installed by running `npm install`.\n  - Check for compatibility issues with the installed versions of Node.js and npm.\n\n- **Native Platform Issues**:\n  - For Android, ensure Android Studio is correctly set up and updated.\n  - For iOS, verify that Xcode is properly installed and configured.\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## Contributing Guidelines\n\nWe welcome contributions to enhance the SurveyHub Mobile Application. To contribute:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bug fix:\n\n   ```bash\n   git checkout -b feature/your-feature-name\n   ```\n\n3. Commit your changes with detailed messages:\n\n   ```bash\n   git commit -m \"Add: Description of your feature\"\n   ```\n\n4. Push your branch and open a pull request.\n\n\u003e [!NOTE]\n\u003e For detailed guidelines, refer to [CONTRIBUTING.md](CONTRIBUTING.md).\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## Support\n\nFor support, contact:\n\n- **Email**: support@surveyhub.com\n- **Documentation**: [SurveyHub Mobile Wiki](https://github.com/manuelalejandrojimeneztorres/surveyhub-mobile/wiki)\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## License\n\nThis project is licensed under the **Apache License 2.0**. See the [LICENSE.txt](LICENSE.txt) file for more details.\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\n## Acknowledgments\n\nSpecial thanks to:\n\n- The [Ionic Team](https://ionicframework.com/) for their exceptional hybrid app framework.\n- The [Angular Team](https://angular.io/) for their robust frontend framework.\n- The open-source community for providing invaluable tools and libraries.\n\n[🔼 Back to Top](#table-of-contents)\n\n---\n\nFor more information, visit [SurveyHub Backend](https://github.com/manuelalejandrojimeneztorres/surveyhub-server) or [SurveyHub Desktop](https://github.com/manuelalejandrojimeneztorres/surveyhub-desktop).\n\nEnjoy building with the **SurveyHub Mobile Application** and feel free to contribute to its development! 🚀\n\n[🔼 Back to Top](#table-of-contents)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanuelalejandrojimeneztorres%2Fsurveyhub-mobile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanuelalejandrojimeneztorres%2Fsurveyhub-mobile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanuelalejandrojimeneztorres%2Fsurveyhub-mobile/lists"}