"PolloPollo Feedback Module"
One of the unique features of PolloPollo is the way the platform connects donors directly to recipients. This fact introduces a possibility to create an unprecedented donation experience, taking transparency and the peer-to-peer aspect to entirely new levels never before seen in charity models.
While our focus has primarily been to create the direct link between donor and applicant for the actual donation process, it is also clear that we have a unique possibility to also establish a direct link the other way - from applicant to donor!
Therefore, we want to introduce a “PolloPollo Feedback Module” to the solution.
Crowdfunding a bounty
Crowdfunding is usually about raising funds for a startup in order to be able to increase the team, scale solutions to new markets or similar. But with PolloPollo, everything is a little bit different. Everything is built by volunteers, but we now want to explore the possibilities of crowdfunding a bounty for this specific feature which will greatly improve the donation experience to all parties involved. By the help of generous donations, we hope to be able to fund a bounty to create an incentive for a developer team of developers to build this new feature.
Being a 100% non-profit project driven by people with a determination to make a difference to other people, we want the bounty to be a token of appreciation rather than a formal salary. Therefore, we set the total goal for this fundraiser to $1200 in Bytes or tokens tradable for Bytes on Obyte’s decentralized exchange “Odex”
The Feedback Module must be integrated with the existing PolloPollo platform but will, for most parts, be possible to work on as an isolated ecosystem running in parallel with the actual donation platform.
If you aren’t already familiar with the PolloPollo platform, please head to the About section of the PolloPollo website.
The PolloPollo Feedback Module will provide a safe, private and personal possibility for an applicant to express their gratitude directly to the donor that paid for a product they received.
Creating a private message
When an applicant logs in and clicks the “Confirm Receipt”-button on an application for a product they just received, the applicant must be presented with a window that allows the applicant to upload a picture and/or write a personal text message.
The form must be simple, self explanatory and, if viewed on mobile, allow a direct way to upload a picture from a smartphone. If a picture is uploaded, the uploaded picture must be shown on the form for reviewing before the user decides to submit. The applicant can choose to either close the form (not send anything) or click a “Send”-button below the form.
Storing a private message
Once the message has been created it must be stored on the PolloPollo platform. It is important that the Application ID is linked to the private message and sent to the PolloPollo back-end, so it can keep track of which message belongs to which application and thereby donor. The PolloPollo back-end has information about the application, the applicant and the donor’s wallet/device. The private message should be encrypted in a way that will allow only the donor, identified by his device/wallet to view it. The back-end will expose a method allowing the Feedback Module to let the back-end know that a private message has been sent for a specific application ID. A flag on the application is needed when donors log on to view their applications and see if any of the applicants provided feedback.
Viewing a private message
The PolloPollo Feedback Module must notify the headless Obyte wallet / Chat-bot that it should notify the donor of a given application that a message from the applicant was received. As donors do not need a profile on PolloPollo, the only way to reach donors is through a message from the chat-bot to the donor’s Obyte wallet.
The notification message must contain a simple URL (like for example “pollopollo.org/feedback”) which should lead the donor to a page asking them to log in using their Obyte wallet.
The PolloPollo back-end will be able to verify that the user logging in is a donor and be able to identify any applications to which he/she donated, that has messages from the applicants. The list should be presented so it looks like the main PolloPollo website’s applications.
The back-end provides the data for the generation of the list and will be able to render a button when a private message was received for the specific application.
Once the donor clicks the “View message”-button, he should be taken to a separate page which allows viewing the private message from the applicant. The private message must be decrypted using information from the logged in donor’s wallet. Entirely bullet proof cryptography isn’t required for this, as the intention is just to prevent publicly exposing pictures or messages by for example iterating over an ID to "guess" other messages URLs or similar.
The PolloPollo Feedback Module must register the date that the private message was viewed by the donor as this will be used for automatic removal of private messages 7 days after they were first viewed. The date of creation must be registered as well, as the message/picture will be deleted after 30 days, regardless of whether or not the donor has viewed it.
Platform and technical specifications
The PolloPollo platform is built on a Debian 9 server with nginx web server and a MySQL/MariaDB database.
The site is split into 3 separate elements:
Chat-bot is running a headless Obyte wallet and written in NodeJS/Typescript
Back-end is ASP dotnet core, Entity Framework Core, xUnit.net and MySQL
Front-end description here
The PolloPollo Feedback Module can be written in a different language like PHP, but please get in touch with us before introducing new languages, libraries or technologies. It is also required that it will be able to communicate internally on the server with the backend and frontend to avoid unnecessary duplication of logic and visual rendering.
The Feedback Module must use the same fonts, colors and style/design as specified in the PolloPollo Design Guide which will be provided.
Your code must be submitted to GitHub under the same license as the rest of the PolloPollo platform code but in a separate repository.