We were inspired by the app Reddit and their community on problem solving. Along with that, we were also inspired by Hypixel's Bug Forums.

What it does

Build UCM is a Web-App which will allows students to voice opinions and suggestions for improvement on campus. They can also create study sessions where other students may signup through the library system to join, which help improve social interaction. The forums would be regulated by the school and would help create more interaction with them. Students will be able to upvote and downvote threads based off if they agree, pushing them to the top of the forum. Every week the forum will reset and the ones on top for that week will be responded to by staff/faculty on the changes that students requested.

How we built it

We began by writing out the features we wanted to include on a Google Doc. We split our team to begin working on the project in both the front end and the back end. Our front end consists of HTML, CSS, and JavaScript. We used a template we found online for our homepage and the Study Sessions page. We created the Login, Sign Up, Threads, and Create a Thread pages from scratch, using the same languages. The one thing we did take from the template was the responsive navigation bar. For the back end, we used the Python-based microframework called Flask with SQLAlchemy. The back end was very difficult to figure out. We used Google Jamboards to draw out our ideas for the architecture and also visited Reddit's site and took a look a look at their code using the inspect elements feature on our browser. We used Reddit to figure out what kind of information the page collected and how it worked. However, we weren't able to implement everything. We used what we wrote in our Jamboard to create the python files to collect input information from our HTML to the database. We lined what we wanted to save from users, as well as what we wanted to collect for Forum posts. We then tied everything together to ensure that every page was able to be navigated to and that they were linked to the back end as well. Our version control was made possible with Github.

Challenges we ran into

We weren't completely sure how to implement the up/down vote system to our posts. We also weren't sure how to create threads using replies, which is the idea of a never-ending chain of replies to replies. We wrote it down in our Jamboard but we sectioned everything out based on priorities to ensure we produce an MVP, so we decided we didn't have enough time to implement these features. The back end was the most difficult part of the project. We were planning to use a library called "FlaskBB" for forums, but we couldn't understand how to use it in the time we had. We also had difficulty setting up our project on Google App Engine. GAE changed to Python 3 recently and we had not known and didn't get a chance to figure out how to create the code for it, since a lot has changed.

Accomplishments that we're proud of

We are proud of creating our database, as we had to re-create it two times. Everything runs very smooth (though we did not get the site online). We are also proud of the UI we created using an HTML5 Template as the main page really helped save time.

What we learned

We learned a lot about databases and how one to multiple relationships work. Along with that we learned BootStrap, improved our HTML, CSS, JS. We also learned that creating a forum takes quite a bit of work, but it is very possible once we put in a bit more work.

What's next for Build UCM

We hope to finish Build UCM and showcase it to the school as a way for them to connect with the students. With UCM constantly expanding, Build UCM will allow students to voice what they might want on campus to help improve their academic standings overall. We may also be able to implement this system with other schools after showcasing the capabilities with UCM.

Share this project: