Inspiration

There are many opportunities in the world for students. We saw things like teachers emailing about events, schools announcing fairs, and website with info on just hackathons or just computer science opportunities. We wanted to create a one-stop site where students, teachers, schools, companies, and organizations can post about opportunities that would reach high schoolers around the world. The world of COVID-19 was also a major factor in creating this project. We saw many other's summer plans canceled and the amount of easily accessible opportunities available have also diminished. This project was designed with this issue in mind and we wanted to be the bridge for students and organizations in finding their opportunities.

What it does

Opportunity Dashboard is a fully functional cloud platform that displays opportunities that are available to everyone whether they're hackathons, internships, or online webinars. It's a hub for those who are looking for something of a particular subject or those who are searching for their passion. Our platform is organized in a manner so that the most popular opportunities and the most recent ones can effectively reach everyone. Organizations can use our platform so that they can find the right person to help and guide or connect with for an important opportunity. Everyone's opportunity is important whether they're big or small but every one of them needs to reach someone and our site does just that.

How we built it

We use Flask and MongoDB to power our backend and HTML 5, Jinja templating, CSS, and JS to create the frontend. Together we created a dynamic site where content can be created, edited, and viewed.

Challenges we ran into

We faced some challenges such as finding the right service to host our online cloud platform. The team ultimately decided to use Heroku and MongoDB for our server provider and cloud database. There were troubles in designing the login user system, for the third-party packages that we used didn't exactly support our cloud database modules. After reading the documentation, the User class could have been overwritten following a set of constraints. We completely redesigned the User class to fit out MongoDB modules.

Accomplishments that we're proud of

We're proud of redesigning the User class. This turned out to be a great boost for our project for we were able to quickly adapt our database models for posting Opportunity data objects and grouping them in Community data instances. We are also proud of creating a responsive site that makes viewing and creating items simple and quick.

What we learned

We learned how to use new cloud technologies and reprogram certain classes based on documentation and online research. Designing the front end also required us to go beyond our comfort zones and code CSS. The team isn't well versed in frontend-design but a member of our team invested time to create a responsive and clean frontend. We also learned how to create dynamic forms and dynamically connect posts to the "posts" page and their respective communities.

What's next for Opportunity Dashboard

Opportunity Dashboard is set up and ready to run for students right now but it can also be shipped as a website for schools to use for internal events. We have a couple of things we would want to add:

  • Geolocation data so posts can be filtered by location
  • allow users to follow communities and receive notifications on new posts as well as have the home page be fit for their liking. We would use algorithms to show the most relevant posts based on user interest to improve user's experience on the website.
  • We would also want to improve forms and how we manipulate our data to create a faster more optimized website.
  • Connect to paid cloud services that can deliver to many students across the nation or world with ease and scale to account for increased loads.
  • Create a system to handle images to upload so we can use a cloud CDN to decrease load times and improve files sizes
  • Improve DateTime use, use UTC to make time consistent and display time to post on posts to give more information to users
Share this project:

Updates