{"id":41004028,"url":"https://github.com/adams-okode/ussd-flow","last_synced_at":"2026-01-22T08:37:13.709Z","repository":{"id":243290077,"uuid":"805490234","full_name":"adams-okode/ussd-flow","owner":"adams-okode","description":"A python extension to create USSD applications by defining screens/menus as JSON.","archived":false,"fork":false,"pushed_at":"2024-07-30T20:27:16.000Z","size":1340,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-07-31T18:13:09.719Z","etag":null,"topics":["africastalking","django","fastapi","flask","python","ussd"],"latest_commit_sha":null,"homepage":"https://adams-okode.github.io/ussd-flow/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adams-okode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-24T17:35:15.000Z","updated_at":"2024-07-30T20:26:03.000Z","dependencies_parsed_at":"2024-06-07T21:01:30.911Z","dependency_job_id":"0ec9580f-e211-42f9-8fc9-a7d54acb52f7","html_url":"https://github.com/adams-okode/ussd-flow","commit_stats":null,"previous_names":["adams-okode/ussd-flow"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/adams-okode/ussd-flow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adams-okode%2Fussd-flow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adams-okode%2Fussd-flow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adams-okode%2Fussd-flow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adams-okode%2Fussd-flow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adams-okode","download_url":"https://codeload.github.com/adams-okode/ussd-flow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adams-okode%2Fussd-flow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28659518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"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":["africastalking","django","fastapi","flask","python","ussd"],"created_at":"2026-01-22T08:37:13.012Z","updated_at":"2026-01-22T08:37:13.700Z","avatar_url":"https://github.com/adams-okode.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UssdFlow\n\nUssdFlow is a dynamic and robust Python library designed to simplify the creation, management, and serving of USSD menus. Integrating seamlessly with Africa's Talking USSD implementation and utilizing Redis for efficient caching, UssdFlow aims to provide developers with a powerful tool to build interactive and responsive USSD applications.\n\n## Key Features\n\n- Dynamic Menu Creation: Easily define and manage USSD menus with dynamic content and options.\n- Seamless Integration: Integrates directly with Africa's Talking USSD gateway for reliable and scalable USSD services.\n- Efficient Caching: Leverages Redis for high-performance caching, ensuring quick and efficient session management.\n- User Session Management: Handles user sessions effectively, tracking user progress through the USSD menus.\n- Flexible Configuration: Offers flexible configuration options to tailor the USSD experience to specific needs.\n- Error Handling: Robust error handling ensures smooth user interactions even when issues arise.\n\nInstallation\nTo install UssdFlow, simply use pip:\n\n```bash\npip install ussdflow\n```\n\n## Getting Started\n\nHere’s a quick example to get you started with UssdFlow:\n\n```python\nfrom ussdflow import CacheManager, IngressData, USSDService\n\n# Initialize the cache manager\n\ncache_manager = CacheManager(cache_type=\"redis\", host=\"localhost\", port=6379)\n\n# Initialize the USSD service\n\nussd_service = USSDService(\n    menu_file_path=\"path/to/your/menu.json\",\n    cache_manager=cache_manager\n)\n\n# Sample USSD request\n\nrequest = IngressData(\n    session_id=\"1234\",\n    service_code=\"*123#\",\n    phone_number=\"254712345678\",\n    text=\"\"\n)\n\n# Process the request\n\nresponse = ussd_service.ingress(request)\nprint(response)\n```\n\n## Contributing\n\nWe welcome contributions to UssdFlow! If you have suggestions, bug reports, or want to contribute code, please check our [Contributing Guidelines](./CONTRIBUTING.md).\n\n## License\n\nUssdFlow is licensed under the MIT License. See the [LICENSE](./LICENSE) file for more details.\n\nBy following this documentation, you should be able to integrate UssdFlow with Flask, FastAPI, and Django to create, manage, and serve USSD menus efficiently.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadams-okode%2Fussd-flow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadams-okode%2Fussd-flow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadams-okode%2Fussd-flow/lists"}