WHAT IS PA DSA?

PA DSA is a textbook covering entry, moderate, and advanced data structures and algorithms with written discussions, video content, and practice problems. It was created with html, CSS, and JS on the frontend, integrated with Astro on the backend, and is actively hosted with github servers. It was created by a team of 30 people working in the Phillips Academy CSC630 class.

PRODUCT DESCRIPTION

PA DSA covers 15 major topics of data-structures and algorithms, as well as many prerequisite or associated topics. The textbook is open source and openly available. For every major topic, there are custom diagrams and drawings, code examples, and a set of custom practice problems + solutions to help students understand and apply each lesson. The website also contains a number of auxiliary screens, including a landing page, about us, and contact form.

Promo

An online textbook for data structures and algorithms, created by PA's CSC630 class

Metadata

Astro Website

2022

Tags

CSS HTML Astro Angular JS Frontend

TECHNICAL DESCRIPTION

The website is structured around display markdowns. Each lesson, including the code examples, diagrams, and problem sets are written in markdown, which are then formatted using CSS styling rules and displayed using Astro page manager. This means that the textbook content is separable from the website and can be downloaded and effectively viewed offline. All front end code is written using HTML and CSS in combination with Astro. The website is deployed with a combination of Astro deployment manager, Vercel, and github hosting.

ROLES & RESPONSIBILITIES

The project was completed in collaboration with the students from the Phillips Academy course CSC630 Data Structures & Algorithms over an 11 week term. The team was made up of 30 students who, throughout the term, rotated through roles including project oversight, communication, development, and design. Having 3 years of software development experience, I played an essential role in putting this project together, spending most of my time either on dev or project/design management. My responsibilities included designing and implementing the front-end, optimizing the site for mobile, managing the teams that wrote and proof read the markdowns, and making sure feature development + deployment remained on time.

In this project I gained valuable skills in project leadership and communication, having spent much of my time managing the work and contributions of others, as well as applied development skills, including astro, more front-end experience, and practice in deployment. I also became more familiar with using git, branching, and code review, especially in a collaborative, non-individual context.