Two weeks ago my younger brother visited and when it was time for him to leave I had to book him a bus via the Easy Coach app on playstore. The next day we just headed to their offices and they took it from there. Being a dev, I loved the idea behind their app, abstract the tedious not to mention time consuming process of acquiring tickets manually. The only drawback is that it limits access to only smartphone users.
This week I decided to build a similar solution but targeting both featured phone(kabambe) and smartphone users. Also I intended to make it offline so as to be lenient on users without regular data or WiFi. Thus I built a USSD application to allow users access the following services:
[li]Users can query all buses in the system[/li][li]Users can book a bus[/li][li]Users can check the status of their booking ticket[/li][li]Users can cancel their ticket[/li][li]Users can report complaints[/li][/ul]
My primary stack is Python and JavaScript but since this was gonna be more logic than UI, Python sufficed. The USSD integration was made possible thanks to Africa’sTalking and their amazing developer docs and APIs.
Here is a snippet of the code housing the business logic of the app:


And here are pics of how the app responds when a code, say *384# is called.
Selecting option to book a bus:
Then we get back details including the time our bus leaves:
Other options work as well and I think this is a great project that identifies a real problem out here and attempts to solve it. I will keep developing the code and add a few features here and there and even add text message notifications and integrate LipaNaMpesa. I will also invite contributors who will fork the repo and get their hands dirty with code.
I wrote an article about this project on The Practical Dev and you can read it here if you want.
Happy hacking devs!

Nice idea bro, keep it up, otherwise, leta hiyo app nikujaribie na Gwang OS that i created last year

Thanks man. Will do.

Nice intergration of for loops and if statements. Very beautiful code Adams makes me feel like going back to python again.

Safi elder

Thanks. The indentation rule makes Pythonic code beautiful.

This is good Lang’at

Weldone bro sahi niko tutorial purgatory… Ndo nimeanza js functions everytime i build momentum mhindi ananituma job yenye siwes make progress na course… By the way natafuta mentor! Halafu hio theme ni clean af

JavaScript ni language mufti sana.
Theme is Synthwave '84.
Jikaze tu man. Utafika.

Shika arrow functions za ES6 afu pia ivia high order array methods. Zinatumika sana uku.

Good stuff. Keep it up.

[SIZE=5]Well done. But step one should be ‘Select language’ then give users an option to select between English, Swahili or Chinese.[/SIZE]

[SIZE=5]And since that was my idea, leta royalties.[/SIZE]

Swafi yangu ni adromeda hukua easy on eyes

I will heed this advice.

Great job. Try and monetize it in every way you can.

Safi sana Mkuu… Hapo TU… Reminds me when we had Linux Group Meetings in Town (CBD) and each would be challenged to develop ‘small projects’ using “OPEN SOURCE”…

Yeah hii sasa ndo next step

What are your presumed steps mkuu before mhindi interrupts to realize your full potential as far as python is involved…

This has reminded me of buupass. I do not know if it still exists, but it had the same function as yours. The only difference is that it served a number of buses, like modern coast, easy coach etc
Buupass was charging customers everytime a button is touched. For instance, a fee is levied when one dials *877#, after choosing say option 1 another fee, after choosing another option another fee again. If one wished to go to the previous menu, maybe to change route or time, another fee
This gave the app a major boost after it was launched. In as much as it is dependent on data and only limited to smartphone users, it brought a better option on the table

How much will yours be charging to dial the ussd? This question comes from a customer’s POV

I have so far learned the basics of py and js i mean basic syntax, conditionals, data types, loops, applications etc. Basic html and css, cli and git is also under the belt but just when am about to take a nose dive nakua deployed elsewhere hence steam na momentum inaisha hivo by the time i get back i have to start with revision hence snail speed. One thing self taught learning like in my case grapple with is designing the structure for learning ie tailoring your curriculum! Unaingia kwa rabbit holes researching for which language to learn, which laptop to buy, best terminal etc shenanigans by the time you get to real learning umepoteza time hapa tu unahitaji mentor roho safi to steer your hand atleast in the initial stages anyways we will keep on trying.

Mjamaa how do you learn. I have tried to learn after job. But nikiingia kwa nyumba distraction kibao. Kwanza nikiingia kijiji hivyo ndivyo hukosa kusoma.

Dopamine detox… Its hard but doable wakati unashika momentum hata kushika simu ukipigiwa hutaki kushika unaona ni disruption, kuona movie unaskia guilty hio time ungetumia kufanya research… It works some days other days unashindwa but persistence kila siku utazoea