At our own universities, we've seen how nonperishable materials from events are often thrown out or wasted, even though other events purchase those same materials just days later. This means that the events lose money and environmental resources are unnecessarily strained.
What it does
UniShare connects groups at one university with extra nonperishables with other groups looking for those same items. The group with the surplus can choose a price to sell their products (for a steep discount off original prices, or even for free). Groups looking to buy the materiels can see listings from other groups, so they can find what they need. The groups who buy the products will save money over what they would've paid at retail. The groups who sell the products will make money over what they would've lost throwing out the products. We also conserve environmental resources because the products will be bought once rather than twice.
How we built it
We decided to create a webapp to both be able to have cross-platform compatability and write code faster. We built our frontend using Angular and TypeScript. Our content and design is powered by HTML and CSS. We use Firebase as our database. One advantage of using Firebase is that we don't need a dedicated backend to access and manipulate the database, since we can do so directly from the frontend.
Challenges we ran into
One of our biggest problems was integrating Firebase with Angular. Three of us had worked with Firebase before, but only two of us had worked with AngularJS (not even Angular), and never tried to use both at the same time. We found that some of us had older versions of the Angular Command-Line Interface, which made using Firebase impossible. Updating to the latest versions of the programs we used helped, though, and we were able to use angularfire2 to manipulate Firebase directly from Angular. Another large problem was that we placed too many listeners at the beginning of the flow of the program. One of them mistakenly redirected the user to a different page after they made a change to the database. Even though this mistake seems small, it was difficult to find and correct because of the sheer number of files our project has.
Accomplishments that we're proud of
We're proud that even though none of us had used Angular, we were all able to take our knowledge of other programming languages and apply them to the Angular framework and the TypeScript language.
What's next for UniShare
We had many different features we would've liked to implement in the app but didn't have the time to do so. One bigger one is to use the Google Maps API and location services to only list sellers and items that are within a certain physical distance of the prospective buyers. A second idea was to use a computer vision API, like Microsoft Azure, to be able to take a picture of all of the items going on sale and be able to read them into the inventory, so that the seller wouldn't have to manually enter individual items.