Inspiration
One of the biggest inspirations for this project came from one of our team members. He was a member of NHS, Boy Scouts, and the Computer Science Program at Olathe South. All three of those programs require a multitude of service hours, and all of those need to be proprietary. There is a multitude of these organizations, and you can easily be in up to 10 of these different organizations. (i.e. Various Honors societies, as well as other community organizations and the Olathe Public School's 21st Century Programs) This tracking can become an absolute nightmare, and a lack of good systems to do so can quickly encourage lying when it comes those hours actually being proprietary and not "double dipping." This encouragement just makes the community lose out on a lot of service hours that these organizations are supposed to provide, and can seriously damage a community as a whole if it gets bad enough.
What it does
Time Well Spent tracks community service hours and what locations those service hours were performed at. It also helps users to attribute these hours accurately to different organizations. This will both be helpful for the students, who can then have an online tracker for something that has always been on paper, and help the organizations confirm hours and be more accurate.
How we built it
Our website is built off of FastAPI for the backend, and HTML and Halfmoon CSS framework for the front end. We used PyCharm as a development IDE, GitHub as a storage location, and MongoDB for our databases.
Challenges we ran into
MongoDB was central to our project, it was providing info for our entire back end. This became a problem on Saturday, as around 1 PM MongoDB went down, and we were unable to make any progress on our code until nearly midnight. The only reason we were even able to make further progress at all is because we were lucky enough to have a team member whose dad has a server already running MongoDB that we could tap into and run our website off of.
All but one of us had little to no understanding of how FastAPI or a web server even worked, and so learning the basics of that for the majority of our team was not particularly beneficial to our overall development speed.
Accomplishments that we're proud of
The workaround for MongoDB was one of those moments where both the simplicity of the solution and the out of the box thinking to sort it out just feels good once you've fixed the problem that has been plaguing your team for half a day. Along with that, most of our team managed to learn and successfully build something while doing full stack development for the first time in under 36 hours, after essentially losing 12 hours of development time as well.
What we learned
MongoDB, which was pretty central to our project, was not something that was familiar for anyone on our team. One member had seen it before, and the rest of us had never even heard of it, and so all of us were learning it when it came to this project. Besides that, this is the first time most of our team has tried anything in the realm of full stack development, so that side of things was completely new for all but one of our members. We split into a back end and front end team, and all of us did brainstorming.
Throughout the hackathon, we consistently split off and built our ends of the website, and then as a group built the JavaScript that allows communication between the FastAPI for our backend and HTML and Halfmoon framework for the front end.
What's next for Time Well Spent
Further functions and ideas:
- Export function: A function to sort and export your service hours for certain organizations as a PDF (Almost Completed)
- Edit Function: A function to allow all variables of a entered event to be changed and updated globally
- Global viewing and regional statistics: A function allowing you to see locations that have had service done recently and what kind of service was done, and see how much of the global service entered is done in certain areas or other statistics of the sort
- User Profiles: Allows users to share profiles publicly and see where those service hours were completed
- Organization Leaderboards: Allows organizations that have had hours attributed to them to be displayed based on how many hours have been completed under their name. (Almost completed)
- Further Dashboard functionality: See most recent events, see affiliations and your highest contributions, etc. (Almost completed)
- Integrated Map: A global map that the user could interact with and see locations of events
- Future events: Ability to create and view future events
Some of these ideas were talked about or even entered the development process, but were eventually scrapped for time purposes. Losing 12 hours was very detrimental. We would have easily finished a lot of these functions, and even had them mostly working but just needed to debug, but couldn't pull it before submission.
There is every possibility we will be continuing to work on this over time, one of our members has a website that he plans on building into a general student resources page, and thus something like this could actually be helpful and could be another service offered by his page. Time Well Spent could very well become part of a real product for his company, Catalyst Studios.
Built With
- css3
- fastapi
- html5
- javascript
- jinja
- mongodb
- python
- sqlalchemy
- sqlite
- starlette
Log in or sign up for Devpost to join the conversation.