Skip to content

[Feature]: Implement Redis Caching for Academic Resources #176

Description

@ErebAsh

Overview

As our Academic Resource Hub grows, fetching the full list of study materials directly from MongoDB for every user will cause unnecessary load on our database and increase latency. We should implement a caching layer using Redis for our high-traffic GET endpoints.

Objectives

  • Set up a Redis instance (can use Upstash for serverless or local Docker for dev).
  • Implement an Express middleware caching layer for GET /api/resources and GET /api/notices.
  • Implement cache invalidation strategies: when a teacher adds/edits/deletes a resource, the relevant Redis cache keys must be cleared.

Technical Requirements

  • Node.js, Express, redis or ioredis.

Acceptance Criteria

  • Initial GET request retrieves data from MongoDB and saves it to Redis.
  • Subsequent GET requests return data from the Redis cache (should see massive speed improvements in response headers).
  • Adding or deleting a resource successfully invalidates the cache so stale data is never shown.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions