All BlueprintsEducation
Video lesson library
A library of video lessons for one school: tutors put up recordings far too big to go through a web request, an upload that loses its connection is picked up rather than started again, and the videos themselves refuse anybody the course has not enrolled.
What you’ll build.
A video lesson library. Tutors upload a file far too big for a normal web request, lose the connection halfway, and finish it the next morning without starting again. Enrolled students watch the moment it is ready. Anybody not enrolled is refused, even holding the video's own address.
What you’ll learn.
Each sprint is built around one skill. You show you have it in a pull request your team reviews, then explain it in a walkthrough.
Authentication
You can register and sign in a user, keep a request authenticated without asking for the password again, and explain where the credential lives in the browser and why there rather than somewhere else.
Enrolling on a course
You can enrol a learner, refuse one who does not qualify with a reason they can act on, and show that a full course cannot be over-enrolled.
Uploading video
You can accept a large upload, process it out of the request cycle, and show the uploader its state until it is ready.
Content not everyone can watch
You can gate content behind an entitlement and show that the underlying file cannot be fetched by somebody without one.
Background jobs
You can hand work to a worker, tell the user it is in progress, and show the result when it lands — and say what happens to that work if the process dies halfway.
Going live
Somebody who has never met you can open a URL and use the product — and you can say what is different about the copy running there, where its secrets come from, and what you do when a release turns out to be wrong.
The roadmap. 8 sprints, 43 tasks.
Every sprint has a goal and a set of tasks. Open a sprint to see the tasks you will pick up.
Getting in
Somebody can make an account and come back to it, and only some of them can put a lesson up.
5 tasks
- A learner can register and land signed in
- Signing back in survives a reload and a night off
- Signing out means something on a shared machine
- Tutor accounts exist, and nobody issues themselves one
- A tutor and a learner land in different places
The roll
A tutor runs a course, learners join it, and the roll says who is entitled to it today.
5 tasks
- A tutor can set a course up and describe it
- A learner can find a course and enrol on it
- A tutor can see the roll, and take somebody off it
- Being on a course has a beginning and an end
- Somebody who took this course last year can come back
The two gigabyte lesson
A tutor can put up a lesson far larger than a web request will carry, and nobody else notices it happening.
5 tasks
- A tutor can add a lesson to a course before its file exists
- A gigabyte arrives without taking the product down for everybody else
- The tutor watches the upload, and can give up on it
- A lesson and its file agree with each other
- A file the product will not accept is refused at the door
Dropped at ninety percent
An upload interrupted at ninety percent carries on from ninety percent, tomorrow if it has to.
5 tasks
- An upload that loses its connection carries on where it stopped
- An upload survives closing the laptop
- A tutor can see what is unfinished, and abandon it
- A resumed upload produces exactly the file that was chosen
- Pulling the plug mid-upload is a test somebody runs
Ready is not uploaded
A lesson that has finished uploading says it is not watchable yet, and then says it is, and then plays.
5 tasks
- A finished upload is prepared without anybody waiting on a page
- A lesson says which state it is in, and the tutor watches it change
- An enrolled learner plays a ready lesson, from the start or the middle
- A file that turns out not to be a video fails with a reason
- A lesson that is not ready is not offered as though it were
A link is not a permission
The video itself refuses anybody the course has not enrolled, not just the page around it.
6 tasks
- The video's own address refuses somebody who is not enrolled
- Access ends when entitlement ends, not when the session does
- A link that leaves the learner's browser stops being useful
- Being refused says something a person can act on
- One place decides who may watch what
- A tutor can take a lesson down, and it stops playing
Work nobody is watching
The library keeps itself right when nobody is looking: nothing stuck, nothing done twice, nothing paid for forever.
6 tasks
- A lesson stuck preparing is visible without reading logs
- Preparing the same lesson twice does not produce two of anything
- Work that fails is retried, and then gives up loudly
- Uploads nobody finished stop costing money
- Deleting a lesson takes its files with it
- A tutor hears the outcome without sitting on the page
Put it where the class is
Somebody who has never met the person who built it can put a lesson up over the internet, and somebody else can watch it.
6 tasks
- The library runs somewhere that is not a laptop
- Settings and secrets come from the environment, not the repository
- Uploading, preparing and watching all work in the live copy
- A release that turns out to be wrong can be put back
- A failure is visible without asking the person who built it
- A stranger puts a lesson up and another stranger watches it
Read before you build. The best engineers do.
Senior engineers read the docs before they touch the code. Every Blueprint comes with short documents on the product and its world, the kind a team hands a new hire. Read them well and you ask sharper questions and walk into every review prepared.
What you are building
The product, the two people who use it, and what finished means.
How video gets from a tutor's laptop to a learner's phone
Domain you will not have: what is inside a video file, why the file you are given is not the file you serve, and what that does to your interface.
More education Blueprints.
Class attendance register
A register for one class: the tutor marks who turned up, each learner sees their own record and the rate it adds up to, a mistake can be put right where everybody can see it was, and the whole term comes out as a file an administrator can act on.
Assignment submission and grading
Coursework handed in against a deadline: learners upload their work, anything that lands after the date is marked late rather than turned away, a tutor can give one person longer without moving it for the class, and the mark comes back with written feedback attached to the attempt it was about.
Flashcards with spaced repetition
A learner builds their own decks and reviews what they are about to forget rather than what they already know. How well a card went is what decides when it comes back, and the schedule is worked out from the answers rather than written down in advance.
Build video lesson library.
Start your free week. Adaeze runs your kickoff, and Lars reviews every pull request.