Architecture & tech stack
We built OurPurduePlan as a classic web client talking to an Elixir/Phoenix REST API backed by PostgreSQL. React gave us the kind of responsive UI we needed for drag-and-drop plan editing, while Phoenix and Ecto handled persistence, prerequisite checks, and statistics over plans and course difficulty ratings.
Authentication is done with Phoenix-signed tokens that are sent in an HTTP auth header. The frontend lives on its own DigitalOcean droplet, and the API + database share a separate droplet, keeping deployment and scaling concerns cleanly separated.





