LSR Web Development Practicum
April 2025 - June 2025
As part of my software design practicum, I worked on a collaborative web development project for Licton Springs Review, migrating their WordPress content to a React website using Postman and the WordPress API.
LSR has published art, writing, and video submissions by students and alumni of North Seattle College in various formats since 2000. It was exciting getting to work on a new website for a real world client.
As part of the project, I had the opportunity to participate in sprints, improve my Git skills, collaborate with peer developers, project managers, and technical leads, practice designing websites, improve my web development and React skills, learn TypeScript, and work with the WordPress API on a real world project.
The practicum I was a part of had great documentation and established processes, which helped me learn Git skills in a more realistic work environment. I participated in sprint planning meetings, task estimation, and retrospectives, created issues and pull requests according to established templates, locally tested the work of other developers, and improved my own work based on feedback.

I had the opportunity to develop a design for the website in Figma, which reinforced my skills in responsive web design. Once the client picked their favorite design, I began implementing the website using React. During the project, I ran into merge conflicts and other Git issues when merging multiple PRs from different developers, which gave me a lot of practice resolving problems in the web editor and CLI, and carefully testing PRs before approval. I found TypeScript helpful for improving the reliability of submitted code and catching type errors.
After the website structure was created using React components, my primary role was to work on fetching content from the original site using the WordPress API. During this task, I became very familiar with Postman, which allowed me to test WordPress API calls, analyze the responses, and parse them in order to display and style extracted content. Although I’d only used them briefly before, after greater understanding I found them extremely valuable, and could already see how I could use the API to allow non technical clients to manage content using the GUI while allowing developers programmatic access.

One challenge I ran into was that some posts had different types of content, like images, videos, and text. I got a lot of practice handling edge cases and ensuring the website could handle all kinds of content gracefully with helpful feedback rather than errors being displayed to the user. I also was able to implement fetching and displaying posts by category, parsing the returned JSON into HTML and React code in reusable components in order to create web pages. I learned a lot about writing reusable, generic functions and components that allowed us to reduce duplication and improve code quality and maintainability.

Once the posts were correctly displayed and styled on the new website, we began discussing different approaches to a more permanent migration. While the team was working on an initial database design, the client asked for a completed and launched website for a public launch party - in two weeks, with new 2025 student submissions in different word documents to be added to the site without being accessed through the WordPress API.
I recommended a simple, rapid approach in order to meet the deadline, creating an array for each post category containing new submissions title and author. The submission objects in the array would be mapped to an HTML list using the existing React components, allowing reuse of the HTML and CSS that had already been developed, displaying the new content above the older WordPress posts seamlessly. On the detail page, titles were used as keys to provide O(1) access to the correct array of paragraphs or other content, fetching the title from the URL's GET parameters, and mapping the content to existing React components. I developed a proof of concept for the Poetry page, after which the team split up the remaining pages, completing the project with time to spare.
This was a great project that taught me a lot about collaboration and working with clients. I'm looking forward to seeing how the rest of the site develops, as the next generation of students completes the database.
Thanks for checking out my project!
Back to Portfolio

