Inspiration

I’ve had the idea to build PYWORKS since I taught and developed content for a Python bootcamp at Michelle Obama Elementary School two years ago. It was the first time most of the 5th and 6th graders had tried coding, and all of them had a great time connecting coding with other hobbies of theirs- like soccer and tennis! There was one student in particular that stuck with me, however. Right before the end of the last day of class ended, she exclaimed that she was sad the camp was ending because she wanted to do more, and that she loved this camp! That day, I went home and started my brainstorming, trying to find a way to make this concept a reality. After creating wireframes with Figma to try to learn Swift, I branched out into all the paths I could think of. After conducting Intro to Python and Advanced Python Workshops of my own, with many more students having expressed the same feelings, I realized that I had to make PYWORKS happen. I wanted every kid everywhere to explore Computer Science, to see if it excited them, to let their creativity run free. Building PYWORKS has been my goal for a while, and I am ecstatic to demo this for the Congressional App Challenge, with the hopes of increasing accessibility to gaining useful Computer Science skills.

How I built it

I completed PYWORKS piece-by-piece. I started with the hero and post information sections of the website, moving on when they were connected to the backend. Then, I worked on user profiles, landing pages, logins, and authentication. Finally, I developed the Admin panel and the post-adding mechanism!

Challenges I ran into

faced was connecting the Firebase backend to the HTML, CSS, and JavaScript frontend. This was my first time building a website with both of these components, and I lacked some crucial knowledge of these technologies as I started out. To combat this, I attempted to read Firebase documentation, but to no avail. I tried to apply my knowledge of Java and Python by creating alternate files and classes and grew more restless as I failed. Finally, I switched over to YouTube tutorials, and thanks to helpful creators like Keith Patterson and freeCodeCamp, I managed to get PYWORKS’ full-stack development on track. While the initial connection was likely the biggest issue I encountered during the programming process, there were many smaller issues I confronted and overcame as well. For example, when my goal was to prevent non-Administrators from viewing applicant profiles, I noticed that the Applicants list in the database was deleting all previous applicants whenever a new user clicked the “Apply” button.. These issues required many console.log() functions, but they always ended with me gaining a deeper understanding of JavaScript and coding in general. While I spent about half an hour solely concentrating on the Applicants bug, I found a deeper understanding of local and global scopes of a variable (I had declared a variable in the wrong part of the code), even though I believed I was proficient in it. Whether it was a problem with my understanding of the services used, or just a problem in general, one lesson stood out- I should always save working code in case any unforeseen circumstances arise!

Accomplishments that I'm proud of

I'm proud I learned how to use Firebase with HTML, CSS, and JS for the first time. Most of my other websites have been confined to using JS for solely stylistic purposes. So, using my JS experience for backend connection made me more confident and excited for further adventures!

What I learned

This was my first real project with Firebase and Javascript, so I learned how to navigate those. I also learned many things about effective styling- even if it was just CSS. The difference between my prototype and my final project in terms of styling choices was drastic (in a good way)!

What's next for PYWORKS

An in-app chat system would make reaching out to potential applicants much simpler. One way to execute this idea would be with a FireStore Database and a front-end language like React.js with built-in features for this purpose. Building one from scratch would also provide extra flexibility, which could be used to make reaching out to multiple applicants easier.

Adding more functionality to user profiles, like the ability to add resumes and separate projects, would also make the contact process much simpler for both parties, alleviating the dependency on email communication.

A stronger security and verification system would be a great addition to this project. As of version 1.0, Administrators can only be added to the system when I manually update the status of the user in order to enable them access to posting. The goal would be to revise the app with security and convenience in mind.

Adding a few small but mighty features like file uploads for images (with a built-in mature content check), adding creator profiles to post descriptions, and bringing in testers to design a more intuitive UI experience, would also encourage usage.

While these are just a few improvements for PYWORKS, there is always more room for innovation and growth!

Built With

Share this project:

Updates