The three of us are Freshman at Princeton this year. A few short months ago we were preparing to come to campus, excited by the many new opportunities ahead of us. Princeton's website says there are 300+ student organizations available to join. However, when we tried to research the different extracurricular clubs and activities, the information was disorganized, decentralized, and hard to find. Once we came to Princeton, there was an activity fair with hundreds of clubs and thousands of particpants, making gathering information about clubs difficult and inconvenient. This link![website] has some clubs listed. However, many clubs are missing or have little information, and overall the website is uninviting and difficult to navigate. We knew there had to be a better way, and we set out to create it.

What it does

Our website collects information for the different student groups on campus into one central location. The user is not only able to search for clubs, but also to filter the groups by type of activity, time required, tryout or sign-up, and coed or gender specific. Each group has a picture, brief description, quick facts from the filters above, contact information, and a link to their website if available. This enables current and incoming Princeton students to learn about the activities that fit their interests and enables prospective students to see what great opportunities await them if they apply to Princeton.

How we built it

We divided our site into sections and each worked to program the underlying html and javascript for our sections. For the CSS code we worked together to make sure the site looked cohesive. One of our team members with more programming experience headed up writing the search and sorting javascript code, but we all contributed to debugging and testing the code. We used GitHub pages upload the site to the internet.

Challenges we ran into

Coming into the project we were not close friends, and two of us had never met before. Although we eventually formed an efficient, tight-knit team, learning to work with new people was difficult at the beginning. From a technical standpoint, two team members had no experience with the languages of web building which proved to be quite a challenge from a time perspective. Much of Friday night and Saturday morning was spent learning the basics of the programming languages we needed for the project. However, our more experienced third team member was able to take on a mentorship role to provide the guidance that we needed. The final major challenge we faced was uploading it to the internet. We registered a domain, but continued to have issues with uploading the website. None of us had experience with actually uploading a website. Eventually we switched to GitHub pages which we found much easier and more reliable.

Accomplishments that we're proud of

There is something magical about uploading a full webpage to the internet and seeing it load on someone else's computer. We are proud of getting our website on the internet, but also for building a website that we would love to use ourselves. We set out clear goals at the beginning of what we wanted the website to do by the end of hackprinceton, and we were able to accomplish those and more. We feel that we have gained new skills and begun a project that we can continue to build and develop. We truly see this as a service that might be used by all Princeton students in the near future.

What we learned

Two of our team members had never done anything with web design so we learned HTML, CSS, and javascript this weekend. Our third team member already had web design experience but learned more about javascript, creating forms, and GitHub. We all learned a great deal about how to program in a team and how to create small parts that fit together in the end into something amazing.

What's next for PrincetonClubs

PrincetonClubs has a huge future ahead of it. We were only able to scratch the surface of the potential for this website. In the future we plan on adding individual pages for each group where they can display more detailed information and upcoming events. Users will also be able to submit questions or sign up for email lists directly on these pages. We will also add a login so that clubs can keep their pages up to date. Once we add a login, we will be able to explore other possibilities such as providing a platform for users to submit their applications to clubs and create personal calendars with clubs events they are interested in. Eventually we plan to develop our idea into a mobile app.

Share this project: