Learning Management System for p5.js
Platform for teaching p5.js with exercises, user accounts, code saving and previewing
April 2021
TypeScriptp5.jsNode.jsReactGraphQLApolloExpressPostgreSQL
Project Overview
Following my coding camp in 2020, I developed a full-stack application to create an online platform for teaching p5.js. This project served as a learning experience in GraphQL, Apollo, and PostgreSQL.
Key Features
- User account creation and authentication
- Interactive "Exercises" or problems, including:
iframe
p5.js preview window- Console with error logging
- Instructions article using markdown
- Code editor using
codemirror
- Data storage in PostgreSQL database
- "Starting code" provision for new exercises
- Stripe integration for user creation process
Technical Implementation
- Frontend: React with TypeScript
- Backend: Node.js with Express
- Database: PostgreSQL
- API: GraphQL with Apollo
- ORM: TypeORM for database access
- Payment: Stripe integration
Learning Outcomes
This project provided valuable experience in:
- Structuring a larger schema for data transmission between client and server
- Using Apollo and GraphQL for efficient data transfer
- Deploying a full-stack app using Docker and AWS
Screenshots
Example of an exercise page with code editor and preview
Error logging in the console
Main menu of the application
Future Improvements
- Implement real-time collaboration features
- Add more interactive coding challenges
- Develop a mobile app version