INTERNSHIP
Creating a Web App
CLOSING REPORT
Reflection
Due to the circumstances this school year, I took the opportunity to do a personal project to fulfill the internship requirement for graduation instead of doing a traditional internship. My partner, Michelle Tandradinata (who attends a different school), and I worked together to develop a web app that would provide an easy way to find protests by entering the name and zip code. We decided we’d enter our app into the Congressional App Challenge. Some of the additional features include a resources page and a form for organizers of protests to fill out so they can add their protest to our list and spread awareness about their event.
Throughout the duration of the project, Michelle and I would have an hour long Zoom meeting about every other week to work together and discuss our goals for that week, as well as next steps and deciding who is responsible for which tasks. We didn’t have consistent weekly duties other than that because unlike a traditional internship, the tasks we worked on changed as our project developed. The main things we completed by the end of the project were planning, researching, coding the home page, form, resources page, and the search bar and list of protests. We also filmed and edited the demo video which was part of the application for the Congressional App Challenge. While the most obvious skills used are technical skills and knowledge of coding, other skills such as communication, problem-solving, and teamwork were also important and practiced in the project. One problem we ran into was discovering that Firebase, the database we were using for the form that organizers fill out, didn’t support full-text search which we needed to have so that users can look up and search for protests. However, we overcame it by changing our plans and using Firebase only for the form, and using a different method to search for protests, although this method required manually inputting information.
I initially expected that this project wouldn’t take that long and thought we wouldn’t run into too many obstacles, but I later realized that I had been too optimistic. Our original vision had to be changed a few times in order to account for unexpected problems we encountered, like when we discovered that we couldn’t use Firebase for full text-search. I learned how much time and attention goes into even the littlest aspects of apps that we normally take for granted, like the arrow that takes you back up to the top of the page. I have a better understanding now of the typical amount of time that should be accounted for depending on the features. I also learned more about backend development like how databases can be manipulated for different purposes. Overall, I had a great time doing my internship and am proud to say that the app ended up being announced the winner of our district. To see a demo of the web app, check out this link.
JOURNAL ENTRIES
Week of July 6:
Michelle, my partner from another school, and I wanted to enter the Congressional App Challenge so we did some brainstorming for ideas. My friend came up with the idea of making a web app that will make it easier for people to find protests in a specific area based on the type of protests or marches they’re interested in. We were inspired by the growing movement of activism and recent protests so this seemed like the perfect focus for our app.
Week of July 20:
We did some more planning and brainstorming. We zoom-called my instructor from a summer computer science program to ask for some guidance on our project. After pitching our ideas to her, she gave us valuable feedback and insight into how each feature could work and how long it would take. She also recommended some resources we should look into for further help.
Week of August 8:
While Michelle worked on researching how to implement the different features that we were unfamiliar with, I mainly worked on the layout and doing the wireframe for the web app. I considered how to make it look presentable while still being functional. Then I moved onto actually coding and using the wireframe as a reference.
Week of August 17:
This week was mostly about continuing our research. We read articles and watched video tutorials on working with databases. We decided to use Firebase for our database because it was the easiest to use and it is a noSQL database. We started on making the form, which would be connected to Firebase. The form is for organizers of protests who can use it to spread the word about their protest by having it posted on our web app.
Week of August 31:
We encountered some challenges this week with getting the form to connect to Firebase and having it actually send the information from the form to the database after it is submitted. We did some debugging and also watched some videos on forms with Firebase, and were eventually able to resolve the problem.
Week of September 7:
We finished up the form this week. We added stylistic touches to it and included additional information we should ask the organizers of protests to fill out on the form. We started talking about some of our next steps, including the search bar which is the main feature on the web app. There was a small problem we noticed with the form, which was that the information on the form was sent to the database as we wanted it to, but the information also popped up as a list on the web app under the form. We decided to move onto the search bar for now and come back to that problem later because the search bar is more important and the deadline for the Congressional App Challenge was approaching.
Week of September 21:
This week, we did research into using Firebase to allow text-search on our web app. Unfortunately, Firebase doesn’t support full text-search, but I found some articles that provided a solution to get around that. While it doesn’t allow for full text-search, the solution allows you to find items based on keywords which works too. We tried this out but it wasn’t working.
Week of September 28:
We looked up other ways to allow text-search using Firebase but none of them were working. This was a big problem for us because searching for protests is the main thing that our web app does. We used Firebase for the form, and we wanted to use it for the searching aspect too so the information would transfer over to the search page on the web app. Eventually, we decided that we would just use Firebase for organizers to send us information about their protests, and then we’d use manually add protests to the list on the search page and use Javascript to search for different protests based on zipcode or name.
Week of October 8:
This week was all about doing the final touches on our web app. The only things left to do were to create the resources page and focus on enhancing user experience by making the web app more aesthetically pleasing and easy to navigate. We also started our script for the demo video that is part of the project submission to the Congressional App Challenge.
Week of October 19:
This was our final week. We finished up our script for the demo video and then filmed the demo video. After filming was done, we edited the video and uploaded it to the application for the Congressional App Challenge. We filled out the rest of the application and pressed submit, and we were done!