{"id":50862692,"url":"https://github.com/smmariquit/bus-ticketing-app","last_synced_at":"2026-06-14T22:05:51.980Z","repository":{"id":309897537,"uuid":"1037936357","full_name":"smmariquit/bus-ticketing-app","owner":"smmariquit","description":"React Native + TypeScript bus ticketing app for POS machines, with Jest tests and a GitHub Actions Android APK build pipeline.","archived":false,"fork":false,"pushed_at":"2026-06-11T08:24:17.000Z","size":879,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T10:14:46.956Z","etag":null,"topics":["android","ci-cd","expo","jest","pos","react-native","ticketing","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/smmariquit.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-08-14T11:00:24.000Z","updated_at":"2026-06-11T08:24:22.000Z","dependencies_parsed_at":"2025-08-14T13:05:13.481Z","dependency_job_id":"8eb01b20-b993-406f-951d-527df5c7c79a","html_url":"https://github.com/smmariquit/bus-ticketing-app","commit_stats":null,"previous_names":["smmariquit/bus-ticketing-app"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/smmariquit/bus-ticketing-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smmariquit%2Fbus-ticketing-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smmariquit%2Fbus-ticketing-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smmariquit%2Fbus-ticketing-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smmariquit%2Fbus-ticketing-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smmariquit","download_url":"https://codeload.github.com/smmariquit/bus-ticketing-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smmariquit%2Fbus-ticketing-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34339267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["android","ci-cd","expo","jest","pos","react-native","ticketing","typescript"],"created_at":"2026-06-14T22:05:49.586Z","updated_at":"2026-06-14T22:05:51.975Z","avatar_url":"https://github.com/smmariquit.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bus Ticketing App\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/smmariquit/bus-ticketing-app/actions/workflows/build-android-apk.yml/badge.svg\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/workflow/status/smmariquit/bus-ticketing-app/Build%20Android%20APK?label=tests\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/smmariquit/bus-ticketing-app\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/v/release/smmariquit/bus-ticketing-app\" /\u003e\n\u003c/p\u003e\n\n## Tech Stack\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/React%20Native-2025-blue?logo=react\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeScript-5.0-blue?logo=typescript\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Jest-29.0-red?logo=jest\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Testing%20Library-React%20Native-green?logo=testing-library\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/GitHub%20Actions-CI%2FCD-blue?logo=githubactions\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Sunmi%20Printer%20SDK-native-orange\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Metro-bundler-blue\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Gradle-APK%20build-green?logo=gradle\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Google%20Apps%20Script-cloud-yellow?logo=google\" /\u003e\n\u003c/p\u003e\n\nThis is a [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli).\n\nThis app has been tested on the following devices:\n- [Sunmi V2s_STGL](https://www.sunmi.com/en/v2s/) (Build #3.1.9)\n  - Connected to [mitsuharu's React Native Library](https://www.npmjs.com/package/@mitsuharu/react-native-sunmi-printer-library)\n  - Other possible libraries include: [januslo's](https://www.npmjs.com/package/react-native-sunmi-v2-printer), [hjfruit's](https://www.npmjs.com/package/react-native-printer-sunmi)  \n- SOON [Noryox NB55S](https://www.noryox.com/product/handheld-pos-terminal-2/) (Build #1.0.9_B231214.144538)\n  - As of now, it seems like the API for this is proprietary\n\nFeatures that possibly can be implemented further:\n- NFC Integration\n- Integration with better database\n- Passenger dashboard\n- Multi-language support\n- Support for additional printer models\n- Added branding to the app\n- Easier user flow\n- Customize company name, TIN, and address in receipt via user interface\n\n# Getting Started (developers)\n\n\u003e **Note**: Make sure you have completed the [Set Up Your Environment](https://reactnative.dev/docs/set-up-your-environment) guide before proceeding.\n\n## Step 1: Start Metro\n\nFirst, you will need to run **Metro**, the JavaScript build tool for React Native.\nTo start the Metro dev server, run the following command from the root of your React Native project:\n\n```sh\n# Using npm\nnpm start\n\n# OR using Yarn\nyarn start\n```\n\n## Step 2: Build and run your app\n\nWith Metro running, open a new terminal window/pane from the root of your React Native project, and use one of the following commands to build and run your Android or iOS app:\n\n### Android\n\n```sh\n# Using npm\nnpm run android\n\n# OR using Yarn\nyarn android\n```\n\n## User Flow Diagram\n\n```mermaid\nflowchart LR\n    A[User opens app] --\u003e B[Select trip details]\n    B --\u003e C[Enter bus, driver, conductor, route]\n    C --\u003e D[Enter passenger category, origin, destination]\n    D --\u003e E[Show trip summary]\n    E --\u003e F[Confirm and prints receipt]\n    F --\u003e G[Receipt saved to database]\n    F --\u003e H[Thank you message]\n    H --\u003e A\n```\n---\n\n# Sample Receipt Output\n\nBelow is an example of what a printed receipt looks like (ASCII art):\n\n```\n====================================\n| COMPANY NAME                     |\n| 123 Main St, City, Country       |\n| TIN: 123-456-789-000             |\n|                                  |\n| Receipt #: 000123                |\n| Date: 2025-08-14                 |\n| Time: 11:59:59 PM                |\n| Bus Number: 2001                 |\n| Driver: Juan Dela Cruz           |\n| Conductor: Pedro Santos          |\n| Route: Naga-Labo                 |\n| From: Naga                       |\n| To: Labo                         |\n| Passenger: Senior Citizen        |\n| Fare Amount: ₱240.00             |\n====================================\n|      Thank you for riding!        |\n|    Have a safe and pleasant trip! |\n====================================\n```\n\nYou can customize the receipt layout in `src/constants/receiptLayout.ts` and related files.\n\n# Learn More\n\nTo learn more about React Native, take a look at the following resources:\n\n- [React Native Website](https://reactnative.dev) - learn more about React Native.\n- [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment.\n- [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**.\n- [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts.\n- [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native.\n\n# Additional resources on POS machines:\n\n- [https://xdaforums.com/t/sunmi-v2-unblock-install-fresh-os-root.4192993/page-4#post-8992457](https://xdaforums.com/t/sunmi-v2-unblock-install-fresh-os-root.4192993/page-4#post-89924577)\n- [https://github.com/abdalla19977/pos_printer](https://github.com/abdalla19977/pos_printer)\n- [https://pub.dev/packages/pos_printer_helper](https://pub.dev/packages/pos_printer_helper)\n- [https://lynqd.com/](https://lynqd.com/)\n- [https://developer.sunmi.com/docs/en-US/xeghjk491/maceghjk502](https://developer.sunmi.com/docs/en-US/xeghjk491/maceghjk502)\n\n## CI/CD Pipeline (GitHub Actions)\n\nEvery time you push or open a pull request to the `main` branch, GitHub Actions automatically runs the following workflow:\n\n1. **Checkout code** – Retrieves the latest code from the repository.\n2. **Set up Node.js and JDK** – Prepares the environment for React Native and Android builds.\n3. **Install dependencies** – Installs all required npm packages.\n4. **Run tests** – Executes all unit and UI tests to ensure code quality.\n5. **Build APK** – Compiles the Android app into a release APK using Gradle.\n6. **Upload APK artifact** – Makes the built APK available for download as a workflow artifact.\n\nThis automated process ensures every build is tested, production-ready, and easy to share with stakeholders.\n\n---\n\n## License\n\nThis project is licensed under the MIT License.\n\n## 📊 Current State of the Code\n- **Tech Stack:** React, Ruby, Node.js/NPM\n- **Repository Size:** 94 tracked files\n- **Latest Update:** `af41610 chore: add stale issue and PR validators`\n\n\n---\n*☕ If you found this project useful, you can support my work at [kape.stimmie.dev](https://kape.stimmie.dev)!*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmmariquit%2Fbus-ticketing-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmmariquit%2Fbus-ticketing-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmmariquit%2Fbus-ticketing-app/lists"}