In the modern world, we live in an environment that is not conducive for voluntarily beneficial contributions to society, even if we may have the desire to do so. We are often so overwhelmed by school and work that it’s nearly impossible to browse through long lists and pick out the volunteer opportunities that interest us the most and that truly benefit our community. To fix this problem, we made Auxilium.

What it does

Auxilium is a native iOS and Web application that utilizes grass root implementation and push notifications to efficiently and effectively connect ordinary people to various volunteering opportunities in their community. The application matches users and opportunities using locational radius and interests of users. When users sign up for their Auxilium accounts, they are asked to select their interests. The application then uses that information to notify that user whenever an opportunity related to those interests is created.

How we built it

Auxilium is powered by Swift, Firebase, OneSignal and Node.JS. We used Firebase as our main database and used it to store user information and populate data fields on our app. Our iOS client creates the user accounts and the volunteer events. We used Node.js to process our backend jobs, such as supplying our Web App with the necessary information to display and send out push notifications through OneSignal. We used Amazon Web Services to host both the Web App and the Node.JS server.

Challenges we ran into

Implementing Firebase into Our Project We were originally planning on using MongoDB as our main database, but we decided to try something new and use Firebase instead, as Firebase has a native iOS SDK and has better data security through its advanced authentication process. Learning the API (in both Swift and Javascript) was a struggle, and took a lot of debugging and trial-and-error to implement. However, the time we put into it paid off, and we ended up with a versatile and robust database.

Implementing Push Notifications This was our first time using OneSignal to send out push notifications. We encountered many obstacles while setting up our Node.js server to communicate with OneSignal. We also experienced challenges while trying to use OneSignal, since its functions were quite confusing at first and difficult to implement. The process of setting up our Apple Developer accounts to enable us to use push notifications services was extremely arduous due to the complexity of signing special certificates and unfamiliarity with the code associated with passing the correct information through our push notifications.

Accomplishments that we’re proud of

Auxilium is almost complete. All of its functions are fully operational and the user interface is polished enough to be put into production. We are extremely proud that we were able to come up with this idea and make it into reality in such a short amount of time. We are also proud of the fact that we were able to send out push notifications to the correct users, thereby matching them with various opportunities that they are truly interested in. We were proud to see that once a user swipes the notification, he or she is able to enter into the app directly to see the details of the event in question.

What we learned

The most important thing we learned was how to split up the work among different team members. Each member has his own specialties, and if the job is not divided evenly or fairly, it is nearly impossible to collectively achieve the final product. We also learned the importance of using Github branches and pull requests correctly to save the arduous work of and time invested in resolving trivial conflicts.

What's next for Auxilium

Although Auxilium is near finish, it still has a long way to go. We plan to publish the iOS app into the Apple App Store and to register the Web Application to a permanent domain. We also hope to incorporate a point system in the very near future to incentivize users to volunteer more. We would also like to polish the user interface even more to make it absolutely ready for launch.

Share this project: