CourseOps Toolkit is a full-stack internal operations hub for a university's online education department. It brings together course production tracking, media asset management, reporting, and team visibility in a single dark-mode workflow optimized for instructional design teams.
- Dashboard with department health metrics, course pipeline visibility, and activity feed
- Course Tracker with Kanban drag-and-drop, list view, filters, and detailed editing
- Asset Library with uploads, previews, metadata, and course linking
- Reports with completion, status, department, and asset trend analytics
- Team directory with workload visibility and quick filtering into assigned courses
- Frontend: React 18, Vite, React Router v6, Tailwind CSS, Recharts, Lucide React,
@hello-pangea/dnd, date-fns - Backend: Node.js, Express, MongoDB, Mongoose, Multer, cors, dotenv
courseops-toolkit/
├── client/
├── server/
├── README.md
└── .gitignore
Create server/.env from server/.env.example:
MONGODB_URI=<your-mongodb-atlas-connection-string>
PORT=5000
CLIENT_URL=http://localhost:5173Optionally create client/.env from client/.env.example:
VITE_API_URL=http://localhost:5000/api# Clone and install
git clone <repo>
cd courseops-toolkit
# Backend
cd server
npm install
cp .env.example .env
# Add MONGODB_URI to .env
npm run seed
npm run dev
# Frontend
cd ../client
npm install
npm run devnpm run devstarts the API on port5000npm run startruns the API in production modenpm run seedpopulates MongoDB with realistic demo data
npm run devstarts the Vite development server on port5173npm run buildcreates a production buildnpm run previewpreviews the production build locally
- No authentication is included by design.
- Uploaded files are stored in
server/uploads. - Activity is logged automatically for course changes and asset uploads.