Roles & Accomplishments
- I was the lead engineer on this product, owning the frontend, backend, and database
- This project found me outside of my frontend comfort zone, as I contributed nearly 1,000 Github commits to the API repo, and 600+ commits to the frontend
- Synapps has enabled the Ellipsis Education team to deliver curricula to 400+ schools, totaling over 23,000 hours of lessons
Tech Stack
The goal of the architecture was to provide junior-dev friendly frameworks with a low learning curves, while allowing the flexibility and power to shape the product into a multi-tenant platform that could be used by other education organizations.
Frontend
Language: Typescript
Framework: React, with functional components and hooks
State management: React Query
Components & Theming: Material-UI, Formik
Styles: CSS-in-JS
Others: Storybook, Cypress, react-pdf
Backend
Language: Typescript
Framework: Feathers
Database: PostgreSQL, with Knex database adapter
Timeline
- Fall 2021: Development begins
- Spring 2022: Product Launches
- Summer 2022: New features + tech debt work
- Spring 2023: Integration with Curriculum Delivery Platform
Features
The Synapps platform has a robust feature set for managing data and optimizing our team's workflows, several of which I had the opportunity to lead and launch. Here are a few that I enjoyed building!
Curriculum Builder
To deliver curriculum, we need to organize lessons based on how much time an educator has per day, and per year, as well as other factors like fulfilling state + national standards. This feature involved a lot of business logic and requirement management, as I worked to understand the unique needs of school districts across the country and our team's curriculum delivery workflow.
It was a great experience where I got to take ownership of the entire stack, including:
- Writing technical specs
- Designing database tables, relationships, and migrations
- Implementing new API services and tests
- Building out frontend functionality
- Solidifying workflow with Cypress
PDF Generator
Once a curriculum is built out, the platform needs to generate a teacher-ready syllabus, pacing guide, and standards map on-the-fly. I used a custom Feathers service to gather the necessary data on the API, and react-pdf on the frontend to dynamically paint PDFs with over 100 pages.