Inspiration

A community board that allows the user to add, update, or flag opportunities. Users can select categories and filters they are interested. Opportunities within categories marked interested would be added to their calendar automatically.

People are trying to create a list of opportunities on Github, Notion, or some portal but either the process of adding or updating is long or the centralized place isn't suitable for a collab from the communities. The data becomes stale after some time as the timeline of each program varies each year requiring one to check manually. Everyone hates this.

What it does

A community board that allows the user to add, update, or flag opportunities. Users can select categories and filters they are interested. Opportunities within categories marked interested would be added to their calendar automatically.

How we built it

React, Next, Fireabase, TailwindCSS, Spheron

Challenges we ran into

While trying to solve data inter-dependency between Firebase write, discord push, and calendar push event, it was hard to solve the chronological read and write as discord id and calendar id were supposed to be written to Firebase to allow for a future mutation to the data and edit the message on all of the platforms at the same time. If done chronologically results in a longer time for response for the user resulting in a poor experience. Also, a shoutout to the user was supposed for the user in Discord but multiple checks have to be performed such as whether the user has added a Discord username on the platform if added then the backend has fetched the discord id to perform a shoutout if not then a shoutout with platform username was planned. Push to Google Calendar was also a tradeoff between one-click calendar authentication (writes are equal to the number of users) or a prebuilt calendar feature supposed to import by the user (single write for all users). The interdependency was solved by pushing to calendar and discord in parallel then writing to the Firebase along with performing user id checks on discord with each request. Google Groups API permission was one of the most confusing to find the source of trouble and retrieving the Telegram channel id was with the official API was vague and required the most time to figure out finally found a bot that helped in retrieving the id of each channel and server. User experience and privacy are preferred over one-click calendar authentication by allowing the user to import calendars based on interest.

Accomplishments that we're proud of

Integrated Calendar, Discord, Firebase, Automated removal, voting, all with minimal latency.

What we learned

Use agile to develop faster then iterate over again and again.

What's next for InfiOpps

Building integration for Telegram, Whatsapp, GMail along with allowing the capability to build on top of infiOpp.

Built With

  • api
  • calendar
  • firebase
  • next.js
  • react.js
  • spheron
Share this project:

Updates