React -- a JavaScript library -- is used as front-end of this website. It combines regular HTML to structure components and JavaScript for logic to render the components. The website's creator (Rahul Rangnekar) chose React for quite a few reasons:
- He learned React during a summer internship and decided that migrating code from separated HTML, CSS, and JavaScript to the React blend would make the website easier to develop for himself and future contributors.
- React is easier to scale with a library than with regular HTML, CSS, and JavaScript individually. Components are reusable, making for far less repetitive code.
- React is widely used in industry -- developing this website gives brothers experience with React.
- React is maintained by Facebook, and it has a wonderful developer community.
Redux is a "predictable state container". It is used to transact with the pse-website
database to store applications submitted via the website, and to hold static data used throughout the website.
Our simple back-end server is built on Node via Express.
We use a MongoDB database hosted by mLab to store dynamic (application) and static data.
The website's static data -- specifically concerning careers & brother information -- is stored in the pse-website-static
MongoDB database. To add, update, or delete static information from the website, an Administrator (the VP of Marketing or the Director of Technology) must interface with our content management dashboard. More information about how to do so can be found in its repository.
As the two MongoDB databases pse-website
and pse-website-static
are common to both this website and the content management dashboard, the corresponding data schemas are declared in a separate node module berkeleypse-schemas
hosted via npm. This ensures the schemas between the website and dashboard are constant, preventing errors in mismatching and extra work in copy/pasting the same schemas in both applications separately. For information on the actual schema declarations, visit the berkeleypse-schemas
repository.
Zapier is used as a connection between the pse-website
MongoDB database and Google Sheets. It allows for simple viewing and sharing of application responses between PSE brothers,directors, and executives.
Cloudinary is used to store images on the website. As of now, only brothers' headshots are stored on the site. Eventually our Cloudinary account should store all website images to prevent a visitor's computer from loading extra data in their browser.
Heroku is used to deploy our website to berkeleypse.org. It's free, easy-to-use via its command line interface, and supports dynamic websites. The final reason is why we migrated from GitHub Pages to Heroku -- we needed a server to receive application responses. Heroku was the best choice.
The website domain is hosted by GoDaddy.
Git is a version control system. It tracks different versions of our code, synchronizes them across machines, and makes for easy collaboration with others. Here's a great guide to Git. GitHub hosts Git as a service.
Trello is used to develop the website in an organized manner. The board for this website development can be found here. An Administrator must add you to the board for you to view it.