Designed and developed a website using React and TailwindCSS for a business research club called Sierra Capital.
Role: Web Developer/Designer
Date: September 2023
The video is a walkthrough of the Sierra Capital website. It starts off by scrolling up and down the home page until clicking on the call to action labelled "go to research" located in the hero. The user is taken to the research page, where clicking on a button labelled "industry" scrolls the page automatically to a subsection of the page called "Industry reports". Clicking on a report opens a PDF in a new tab, and then it is closed. The contact tab at the very top is clicked, and then finally the team tab, where the two team members' profiles are showcased. The video ends back at the home page.
In September of 2023, I designed and developed a website, created with React and TailwindCSS, for a two-person business research club called Sierra Capital. The clients wanted a website to showcase their research reports, their professional profiles, and contact information.
One challenge I faced was showcasing the members' profiles. I aimed to keep the interaction simple, focusing on the members. How could I present each member equally while also highlighting them as needed?
During wireframing, I decided to use compact cards that expand to detailed profiles. This solution allowed both profiles to be displayed equally as a team while giving users the option to expand a profile for more details.
After prototyping the component in Figma (link to Figma prototype here), I realized a state-based approach would be best for development with ReactJS. Using the useState hook, I could change the component's state without reloading the entire page.
I set up the initial state based on the link's hash, allowing direct links to specific member profiles from other pages. Ternary operators were used to avoid using if/else statements, keeping the code concise.
I implemented the design using only three elements within the container: the first member's portrait, the expanded text container, and the second member's portrait.
I opted for this approach of hiding elements based on the component state and updating the text content on click instead of creating three different states containing similar elements, keeping the code elegant. This also results in enhanced site performance due to no additional elements needed to be rendered or coded after every click.
This solution demonstrates my ability to create elegant, interactive code using ReactJS. However, I realize the limitations on accessibility now that I've learned more about it.
In future React projects, I would improve my code by incorporating ARIA for accessibility, designing clearer hover and focus states, and simplifying keyboard navigation to address these accessibility concerns.