How to access our app

  • Login to Expo with these credentials
    • Username : team-noobs
    • Password : teamn00b5
  • Click the expo Link :
  • Log into the app with the following credentials
    • Recipient : Username - Daren | Password - 1
    • Donor : Username - Mary | Password - 1

Inspiration (Social Theme)

Given that face to face interaction is no longer the main mode of communication in a post COVID-19 world, our team has identified service potential issues. While there are many social media and video calling applications that come to mind to strengthen existing relationships with friends and distant relatives, there's a scarcity of platforms to forge new meaningful relationships. In the post COVID-19 world, there is a disconnect between individuals engaging in community work, as well as their beneficiaries. And our team has the solution to bridge that gap.

Without traditional face-to-face communication, interactions when doing community service, such as donating items are likely to become more transactional and superficial. These interactions are also likely to be one-off, as donors and recipients only chat about the delivery details and it would be even harder to form interpersonal relationships between donors and recipients. Hence, our team has devised a way for donors and recipients to connect on a deeper level.

What it does


The main objective of the app is to facilitate the forging of strong and meaningful relationships between a donor and a recipient.

The app first starts out with a needy recipient who is facing challenges in life and could do with some assistance. A donor, seeking to help the community and intercat, will use the platform to list their second hand items on the platform. The app will then automatically matchmake donors and recipients based on their preferences, and they can form a long term bond where donors can consistently help and make a difference in the recipient’s life, similar to that of a “blind date”. Alternatively, donors can also scroll through the backstories of recipients to read about their lives and the challenges that they face and if they empathise with these recipients, they can forge a relationship with these recipients and try to make a difference in their lives as much as possible by providing for their needs.

As we aim to sustain a strong and meaningful relationship between a donor and recipient, we rely heavily on the chat page, where donors and recipients can chat with one another. On the stories page, recipients can also post updates about how they are doing in their life and send them to their donors.


The other issue that we aim to tackle is the issue of the costs of deliveries for donations. Our app facilitates delivery of the goods from the home of the donor to a 7-11 store near the recipient's home. If we use a conventional delivery service, for example Ninja-Van, donors would have to incur delivery fees. This could potentially lead to lower uptake of our app, as donors of products could be reluctant to pay for these fees.

In this user dashboard, a user is able to input their vehicle's route, be it motorbike, car, or van. The app then looks through the item inventories to suggest an item that the user may be willing to help transport. A new route will be displayed to allow the user to compare their existing route against their new route, which would help them decide if they are willing to transport the goods. Our app allocates each delivery to a driver to minimize the additional time the driver would have to travel to pick up the package. By minimizing their additional time, our app encourages drivers to pick up more goods, allowing more donors and recipients to be connected to each other.

How we built it

Our app is built on Amazon Web Services, which allows the app to be robust and scalable. The app is built with react native and Expo to create a responsive application with a simple and easy user interface. Our main back-end server is a Django server hosted on an Elastic Compute Cloud (EC2) unit on AWS, allowing for easy up-scaling of the app. Our app's data is stored on DynamoDB, with pictures on Simple Storage Service (S3). We also used the

Here is an estimation of the costs of our app. Through the use of Dynamo over other SQL databases, our app is able to undertake a pay-per-use payment system. This allows us to conserve funds while the app is not in use, for example during off-peak hours like night times. Hence, we are able to run the app at a relatively low cost of $22 per month, which would allow our solution to be sustainable in the long run.

Challenges we ran into

Given our limited time window, we were unable to complete some features such as routes with multiple stops for the drivers’ dashboard. In addition, with regard to the front end, we faced certain difficulties such as the organisation of many different pages for a variety of users, while trying to maintain a fast UI render as there are lots of images and algorithms being loaded and called upon.

Accomplishments that we're proud of

Firstly, we are proud of the Chat Page Feature as it was onerous to implement, with little documentation or api alternatives that could be used for this feature. Given that communication, interaction and promoting stronger bonds between donors and recipients is the essence behind our application, the Chat Page feature was a necessity that we could not do without so we are proud that it managed to work out in the end.

Secondly, we are proud of the Statistical AI model that we used to assess which driver would take the shortest path to deliver the item. We have to choose whether to send the package on a specific driver, without knowledge of the future routes of other drivers. To combat this problem, we designed a statistical AI model as a solution to this problem.

We found that this problem can be reduced into the statistical problem known as the Game of Googol, and our solution further improves on this by incorporating past user data. Let's say we have the span of a week to deliver the package. We use a time series gradient descent machine learning model that is able to easily pick up on trends in the number of available drivers in that week. With this information, we use our existing data to create a random sample, which is mathematically shown to be the number of available drivers divided by a constant, e. We are then able to choose the first driver with a route better than all drivers in the random sample, and are guaranteed to have a good result! In the future, we could improve this by allowing donors to select how urgently they need the package delivered. Thus, we have developed a cohesive and cost effective solution that utilizes statistical analysis and machine learning to tackle the problems between donors and recipients that would arise as a result of the decline in face to face interactions.

Thirdly, we are proud of the integration with the Amazon Rekognition machine learning algorithm. Integrating the machine learning algorithm with the camera module, we managed to achieve a seamless integration where the user is able to seamlessly take a picture and obtain a recommended category and title for their item. This aids in the allocation of recipients to the donor.

What's next for GuniCorn

With greater consumer data, our app would be able to use a reinforcement learning algorithm to improve its performance during the recommendation of items. Our model would be able to use information like total cost and user satisfaction as metrics to improve on its parameters. This would allow us to optimize the recommendation process, by ensuring that the recipients are recommended items that are most relevant and convenient for them.

We can also improve the user experience of using the app by using a Telegram bot to notify recipients whenever they are allocated an item. This would allow for faster and more convenient turnover of items and hence matching donors with recipients more easily.

Frequently Asked Questions (FAQs)

Why would users want to communicate with each other?

In a post COVID-19 world, given that face to face communication is no longer the main mode of communication, people lack opportunities to truly connect with new people despite the prevalence of superficial online connections. This is because these people do not form a personal or emotional connection with the people they are interacting with. As humans are social creatures, we would yearn for meaningful relationships with new people.

What advantage does your app have over apps such as Carousell or traditional services such as Salvation Army?

Carousell - Carousell is primarily an application for the sales of goods, rather than its donation. In a post-COVID world, Carousell’s primary means of transfer of goods, meeting up in real life, might be less feasible and convenient. While some products may be available for delivery, they are generally limited and would cost significantly more than our app.

Salvation Army - in a post COVID-19 world, our app is able to resolve the inconvenience of both donors and recipients having to travel to a common location. By offering a catalog to potential recipients, we are able to remove the inconvenience of the middle man as we no longer require a central service run quality control, a huge problem with Salvation Army. Salvation Army is also seen as a dumping ground, with little to no interaction between donors and recipients. On the other hand, our chat feature allows the donor and recipient to stay in touch and discuss the good.

How would your app be able to recruit drivers?

In the event our non-profit app is unable to get sufficient funding, it could charge a small token amount to recipients and pass this on to drivers. As drivers do not have to take full detours for the delivery, they would be willing to accept a lower fee. This is especially true for delivery riders of companies such as Grab or FoodPanda, who make many trips each day. Riders would be able to choose to deliver packages when it is convenient for them. Hence, they would be willing to accept cheaper delivery prices.

This would allow us to preserve the goal of cheap prices for recipients while ensuring a supply of delivery riders to keep the app feasible.

Explain the statistical basis for the allocation algorithm.

Based on this research paper, the best solution to the game of googol is to divide the total set of N items into 2 sets, where the first set is the test set and the second set is the actual set. By returning the first value in the second set that is not more than the minimum of the first set, we can maximize the chances of getting the largest number, or at least a strong approximation.

The paper divides the sets in the ratio 1: (e-1). This precise mathematical ratio is important as too small a test set results in a greater chance of sub-optimal pairings while too large a test set could yield no pairing.

Our solution uses random sampling of our previous data as a test set to optimise results. This would allow us to create our actual set to be sized n, and hence a test set of size n/(e-1) to maintain the ratio of 1:(e-1). We use a time-series model to estimate n and choose a sample size n/(e-1), allowing us to utilize our previous data to improve our performance on actual data. This illustrates our ability to use past data to improve present performance.


The dashboard google maps api key has been uploaded to github but we regenerated the api key.

Share this project: