Case study

Education publisher · Teaching resources

A teaching resource library with program-based access

Teachers search one library of classroom materials and download what their programs include. The portal checks access on the server for every resource.

Teaching resource library with search results, locked and unlocked resources and a resource preview
The library: search across all resources, with locked items marked by the program that includes them.

What had to work better

Teaching materials sat in different places, and access depended on which programs a teacher had joined. Teachers needed one place to find resources by topic, grade and type, and to see clearly what they could download.

Built for each role

Teachers with full access

Search the library and download every resource included in their programs.

Teachers with limited access

Browse the whole library, see which materials are locked and which program includes them.

Resource page for a teacher without access, with the programs that include it and an upgrade option
A restricted resource: the teacher sees which programs include it.

What we built

  • A searchable library of teaching resources
  • Filters by program and material type: decodable texts, games, worksheets, assessments, activities and bundles
  • Resource pages with descriptions, grade levels, tags and page previews
  • Sign-in and membership checks on the server for every resource
  • Clear locked and unlocked states that show which program includes a resource
  • Bundles that group related resources into sets
  • Next.js
  • React
  • PostgreSQL
Resource page with description, grade tags, page preview and a download button for a teacher with access
A resource the teacher can open, with description, preview and download.

What changed

Teachers find materials in one library and see at a glance what their membership includes. Access rules are enforced on the server, so restricted files stay protected even when a link is shared.

Tell us what needs to work better

Choose the way you prefer to get in touch.

Let’s talk

Pick a time for a 30-minute conversation. No need to fill out that form if you don’t want to :)

Book a 30-min call

Prefer email?

Write to us directly at hello@devvela.com.

Send a project inquiry

Tell us what you need to build. We’ll reply by email.

Budget and timeline (optional)

We will use these details to respond to your inquiry. Please do not include passwords or other confidential information.