A "time bank" consists of people who have agreed to use time as currency amidst members. It's likened to a gift economy or bartering system that values skills of every kind and supports strengthening an interdependent, self-sufficient, and connected community. While there have been many attempted technological implementations of the time bank model, there are two main issues that have not been resolved: the reliance on the commitment of a single organizer, and bad or outdated tools and UI.
It has become a cliche in the world of alternative communities to hear "what happened to the 'x' timebank?" Member engagement is often dependent on one organized and connected individual. The organizer keeps the community connected and engaged. This person recommends member connections based on skills and personal interests, tracks hours within the community, and organizes socials. When this person moves or becomes too busy to connect others, the existing system’s weak UI makes it practically impossible for members to meaningfully connect, lacking the organizational knowledge to do so. Based on the UI alone, a member may not know who is active in the community, and what skillsets other members possess. Without this contextual knowledge, a time bank is doomed to fail.
Many of the existing tools mentioned fall just short of replacing that organizer role, often only tracking earned hours. The functionality of the existing tools and UI usually amount to a message board, public posts, and a record of total hours exchanged and individual's earned credits. Many timebanks simply organize on an existing platform such as Facebook Groups, and leave the members to track hours elsewhere. Information noise builds with posts that aren’t relevant to the user's interests or skills. Without a few successful interactions, engagement slowly declines and timebanks deteriorate.
The concept of a Holacracy lends some solutions for these issues, and the ideals supporting a Holacracy compliment the goals of a timebank. A Holacracy revolutionizes how organizations think of managing and distributing responsibilities. Rather than a top down organization, it values distributed authority and embraces self organizing networks. Roles within a Holacratic organization are dynamic, clearly outlined, and can be shared. While this concept was intended for labor of a different sense, if a time bank tool were to adopt this model, user interactions and total banked hours would increase. By providing clear roles and skills of a member within an existing time bank's structure, more organic cooperation and interactions can occur.
My goal is to create a web app that fuses these concepts into a fully functional time bank tool. This app needs to be particularly performant and up to date with the technologies available today, in hopes that access to a more invigorated and modern tool will encourage more timebanks to form and stay connected. My learning goal is to build something that can scale well and is closer to an industry standard than anything I've written before. Long term, post Ada, I intend for ML tools to live in this app that can leverage social filters, sentiment analysis, and monitor activity to connect and recommend members.
- Users can navigate a more intuitive UI
- skill request posts are attached to skills: Users can navigate posts by tag of requested skill
- roles (skills) are attached to user profiles: users can navigate users with a specific skill, or specific role
- skills and roles are displayed on user profiles
- Users can define, manipulate: role domains and skills
- pass off roles to, share moderator/organizer roles with, other users
- draft new roles specific to the particular timebank
- Time bank logs user interactions, tracks time credits
- asks if a timecredit was exchanged after a string of messages, reminds users to submit a timecredit exchange to bank
- users can independently submit or log time exchange, have to provide detail of skill exchanged, app adds skill to profile or in tag
- Members earn a credit equivalent to 10 minutes for posting a picture of them disposing of someone else's dog poop at a local park or public nature trail. 20 minutes if it was unbagged.
- Have an additional type of profile for Organizations to do outreach. Offer these profiles tools to recruite and organize volunteers: tools similar to 'sign up genius' and google forms; anything that can unburden some of the responsibilites of a volunteer cooridinator. Volunteers can earn credits for this time or choose to gift earned time to the bank. Time Bank app identifies members that need to use a time credit before they have had a chance to earn one and distributes them.
- Elixir has an good way of pluging python trained ML models directly into it; it would be awesome to integrate that some day and make some of the previously mentioned tools AI driven!
- Implement a check that someone can't sign up and earn more hours than humanly possible.
- Build and enable messaging or email buttons; Automate sending reminders or texts to people within the community.
- Allow members to leave reviews or endorse other member's skills.
- To be more specific about potential feature 3, I was inspired by a post on reddit wherein someone in missoula was looking for a ride to a reproductive health clinic in missoula. I thought of the sensitivities around that, espeically so in a small town. If the relevant posts feature could not only connect based on skills offered (there may be a rideshare skill domain), but could also be alerted to send a sensitive post only to identified safe persons, and was able to intelligently provide some anonymity from the other posts of that user.
- Home feed has automated filters to only show relevant posts to user first
- Older posts or posts of inactive users change in display over a period of time
- App reinforces or uplifts volunteer opportunities from Organizations to timebank users, rewards users with credit for getting friends to sign up.
- Elixir, Phoenix Liveshare, OTS/ETS, Postgres, OAuth?, deployed on Heroku
- ...maybe python, node, elixir?
Ask me about the tutorials I am doing.
I am SO EXCITED for you to build this :D
I few pieces of feedback I want to note:
I could be misunderstanding, but it seems like the MVP feature set listed implies several other features that aren't listed (eg. users can create requests, users can browse requests, users can message each other(?)). I would recommend listing out all the features that this website would need to have to accomplish the full set of things you're wanting for the MVP. I think this will help bring clarity to weather it is too much and if so how we might be able to slim it down.
In terms of technologies, I'm not seeing anything that I see as front-end related. Is this project intended to be a website, app, or an API? If an API, that's totally cool! Otherwise, you'll need a frontend in some form (React, iOS, or Android most likely).
I honestly am not familiar with Elixir but from by quick search, it looks like it's designed to handle concurrency and things like that well. Typically for a Capstone project, that sort of specialization isn't needed. We will never tell a student not to use a language or framework if they're set on it but I want to note that I'm not aware of any staff or TAs at Ada who would be informed to quickly answer Elixir-specific questions or help out with issues. Also typically languages that are designed for special purposes aren't necessarily the best suited for getting something small up and running quickly, so it may take more work than something else would.
Also as a more general comment, if you are planning to build a website you may honestly not even need a backend server as you may be able to just interact with the database directly from the frontend and have that be enough.
Happy to answer any questions you have over Slack or a 1:1!