Coder Social home page Coder Social logo

youcef-debbah / dalti-laposte Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 7.47 MB

An Android app for real-time updates on queue statuses at Algerian Post Offices

License: Apache License 2.0

Java 87.26% HTML 12.74%
android java jetpack-android material-design paging retrofit room

dalti-laposte's Introduction

Overview

This is a working prototype of an Android application that keeps users updated on the status of waiting queues at Algerian Post Offices. Users can receive an Android notification or an SMS when their turn approaches.

In Algeria, government post offices have effectively replaced the banks, and even the Algerian National Bank cannot compete with them. The main reasons for this monopoly are:

  • Cheap Prices A post Office offers All the basic services of a bank agency like: deposits, withdraws, and account-to-account transactions at symbolic prices. However, they don't provide other services like lending money or financing commercial projects, etc.
  • Availability Even remote and underpopulated areas have at least one post office nearby.
  • Reliability From time to time, when a liquidity shortage hits the Algerian banking system, the Central Bank prioritizes supplying the cash to the post offices over the banks.

This monopoly is deliberate, as part of the government plan to support the worker's class, but one of the consequences of this monopoly is an always-empty bank agencies and unbelievably crowded post offices, especially on Saturdays (weekends) and from the 18th to the 22nd of every month (public service payment days).

Crowded post office

Image: A crowded Algerian post office on a busy day.

This is where the idea of this project came from. What makes the project even more feasible is the fact that most Post offices already have a queue management system with ticket distribution machines and a monitor that shows the current ticket. This system is connected through a private WAN network across the country, so the Algeria Post HQ can keep its dashboard updated in real time.

Ticket system monitor

Image: The queue monitoring system at an Algerian post office.

Project objectives

After presenting the idea to the Algerian post office administration, we learned that there was a government project in 2018 to implement a website that allows users to book a ticket to visit any post office. Still, after testing it on a single post office, there was a commotion caused by people who "came first" and the others who "booked their ticket online" and because of this incident, the whole website project was abandoned. More importantly, our team cannot negotiate with the administration of Algerian Post about any 3rd party integration with their backend servers before satisfying two conditions:

  • We need to create a company that is legally labeled as a "startup" by the ministry
  • We must have a "concrete" and "working" application

As a result "Dalti-laposte" project started with these objectives:

  • Conducting a market study Since the clients are very specific (Post office visitors), conducting an on-site market study is both convenient and rewarding since a board client waiting in the queue is usually more than happy to answer a survey to pass the time.
  • Implementing the client App This is the main product of the project. It should be totally functional except for a few features that can not be added (for legal reasons) until after we sign the partnership contract (E-Payment, for example).
  • Implementing the backend Naturally, the Android app needs a backend server to work. It should be fully functional and production-ready. However, the waiting estimation time can be calculated using a simple algorithm that only takes into account the serving rate of the current day. In the production version, this estimation should be calculated with the help of a neuron network that is trained using real-world data. The Algerian Post HQ has such data (from 2017 onward) but won't share it with us until we sign the partnership contract.
  • Implementing the admin App The "admins" are our field agents. For each post office we support, we intend to have at least one "admin" on-site as long as the post office is open. The "admins" are needed for a variety of reasons like: introducing the app to potential clients, providing on-site basic tech support, selling activation codes, registering SMS notifications for clients without a compatible Android device, and sending queue state updates to the backend (current ticket, waiting count, liquidity state, etc.), this manual updating is crucial when the post office network is down (happens almost daily).
  • Setting up logistics This includes: recruiting/training agents, printing banners/posters/flyers, preparing T-shirts (with our logo), and negotiating with a few shop owners near the supported post offices to act as selling points to our activation codes.
  • Testing the service Before presenting the project to the micro-enterprises incubation center or the Algerian Post HQ the whole system needs to be tested for at least one month so that we can confidently say that we have a "working" prototype
  • Getting the "startup" label As Algerian Post HQ requested, we first need to subscribe the project as a "startup" in the National Agency of Tech Parcs (ANPT in French) after getting our incubation contract from this agency we will be officially recognized micro-enterprise labeled as a "startup" all the previews objectives are meant to increase our chances of achieving this
  • Signing the partnership contract This is the main goal of the project. After signing a partnership contract with the Algerian Post HQ we can plan the next steps from there on. Basically, all we want is two things: firstly, the permission to access their backend API (to synchronize our server with theirs) and secondly, a copy of the archived queue data of the last few years (we need it to train our AI model on predicting waiting times)

Project Status

Currently, the project's development is on hold, and the server is offline due to the refusal of the National Agency of Tech Parcs (ANPT in French) to enroll our project in their new enterprise support program. The refusal is based on "legal reasons" since there are no established regulations for integrating a 3rd party service with the Algerian Post infrastructure.

  • Market Study: We conducted a market study that included more than 300 surveys from three post offices (almost 1000 surveys in total) over a three-week period. The study revealed promising insights, with 88.9% of visitors having compatible Android devices with our app, 64.71% finding our service useful, and 24.7% expressing willingness to pay for the service on a regular basis. The most favored price point was 100DZD for a 15-day subscription.
  • Client App: We developed and made the Client App available on the Google Play Store from 2021 to 2022.
  • Backend: The backend server has been fully implemented and was operational for nearly two years.
  • Admin App: The admin app was implemented but not uploaded to the Play Store. Instead, it was manually distributed to administrators. This app empowers administrators with their own activation codes list, enabling them to sell activation codes and efficiently manage post office operations. The app even includes a floating overlay feature that allows admins to update the queue status while performing other tasks on their devices. It also offers the option to register SMS notifications for clients without compatible Android devices.
  • Logistics: During the active phase of the project, we successfully addressed all logistics requirements. However, it's important to note that the agent's team has been disbanded, and the agreements with shops intended to serve as activation code sales points have been revoked.
  • Testing: Extensive testing was conducted for more than 45 days in one post office, during which free activation codes were distributed to all visitors to gather real feedback.
  • The "Startup" Label: Unfortunately, our application was denied the "startup" label due to "legal reasons."
  • Partnership Contract: The partnership contract cannot be finalized until we obtain the "startup" label for our enterprise. We appreciate your understanding and support as we navigate the legal challenges that are currently affecting our project's progress.

Application Features

post office status screenshot

queue status screenshot

remaining time screenshot

alarms list screenshot

phone number input screenshot

activation code input screenshot

Implementation Details

This repository actually contains two Android applications: the client app (for users) and the admin app (for our field agents). Each app has its own module. The core module contains code common to both of them, while the silverbox module contains code shared with other similar projects.

All modules are implemented in Java. We use several libraries, including Retrofit, Guava, Espresso, and multiple Android Jetpack libraries (Hilt, Room, Camera, Paging, etc.), among others. Firebase services are employed to implement various features such as push notifications, logging, and crash reports.

Because the minimum supported Android version is 5.0, all image resources, are provided in vector format. This approach ensures better support for all devices with a smaller download size.

The code in this repo is nearly complete; it lacks only a few tests (which are not needed to build the app) and Google Services JSON files (one per app module), you can obtain these files by creating your own Firebase account. Additionally, there are a few small private libraries needed to compile the code. If you want to compile the code, you can either clone the project and refactor the problematic parts yourself or Contact US.

Licence

This project is licensed under the Apache License 2.0.

You are free to:

  • Share: Copy and redistribute the material in any medium or format.
  • Adapt: Remix, transform, and build upon the material for any purpose, even commercially.

Under the following terms:

  • Attribution: You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • No Additional Restrictions: You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.

For more details about the Apache License 2.0, please refer to the LICENSE file.

Contact Us

If you have any questions or inquiries about this project, please don't hesitate to contact the main developer at [email protected].

dalti-laposte's People

Contributors

youcef-debbah avatar

Stargazers

 avatar Mohammed Adem bourenane avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.