This repo showcases how much / little I could learn in one semester. There is more to learn, check out my continuation @ cappscolton/ela-platform
- webapp has a basic UI
- webapp commmunicates with LMS (Canvas) using the LTI Standard
- webapp communicates with 1 external activity provider (Codio)
- webapp provides the ability to switch between at least two assignment candidates for an ELA
- Webapp communicates with 2 or more external activity providers
- Webapp stores and tracks individual student data gathered from ELA participation
- Webapp has a teacher-only UI section
- Platform provides a basic method of measuring Mastery Learning
- Platform provides a research-backed method of measuring Mastery Learning
- Webapp has a unifying interface, allowing easy integration of new ELA sets
- Webapp has a polished UI
- (Aborted) Webapp consistently determines equivalency between activities using metadata
npm install -g pnpm
pnpm install
pnpm install @prisma/client
You may use the node Dockerfile or examine its contents to see the commands to run for node. It is possible to also run a dev server (pnpm run dev) in place of "node build".
For a local "serverless" development environment emulating Cloudflare Pages, you can also set this in a .dev.vars file. The URL takes a different form here, using prisma's data proxy. This points to the same database, but enables prisma to connect in an edge compute environment. Data proxy URL also works for the .env setup. For production serverless, this is set in the Cloudflare Pages interface.
DATABASE_URL="prisma://aws-us-east-1.prisma-data.com/?api_key=ABCDEFG"
Startup:
pnpm run build;
npx wrangler pages dev -- pnpm run dev;
NoSQL DB won't enforce prisma.schema's constraints right away. Push those constraints to the DB with.
npx prisma db push
If using prisma data proxy, directUrl (raw DB driver connection string) must be provided in prisma.schema just for this function.
When the prisma.schema file is modified prisma client must be rebuilt.
npx prisma generate;
OR
npx prisma generate --data-proxy;
Cloudflare Pages builds and deploys each commit to this repo. Setup takes 15 minutes. 100,000 free requests / day.
Tail Prod logs with:
wrangler pages deployment tail --format json --project-name project-name
Clone this on your server. Use the Dockerfile, then use ngrok or a domain with your provider to make it accessible.
Download ngrok (via wget) and run ngrok on your webserver port.
ngrok http 3000