HUFEED — Campus Social Hub
Full-stack campus social platform with a Node.js/Express/MongoDB backend, a React 19 web frontend, and a React Native (Expo) mobile app. Features JWT auth with httpOnly cookie rotation, RBAC (student/org_admin/admin), real-time notifications via Socket.io, image uploads to Cloudinary, email verification, and auto-generated OpenAPI docs. Primary role was backend lead; also contributed to both frontends.
- Role
- Backend Lead & Full-Stack Contributor
- Timeline
- 4 months
- Status
- MVP
Result Built a production-ready three-tier platform with ~65 API endpoints, RBAC with three roles, real-time updates, CI/CD pipelines for all three repos, and Docker deployment.

1 / 26
Overview
HUFEED is a campus news and events platform connecting students with clubs, events, and announcements at Haramaya University. The backend handles authentication with JWT cookie rotation, role-based access control, MongoDB models for users/posts/events/comments, Socket.io real-time events, and Cloudinary image management. The web frontend is a React 19 SPA with a three-column layout (navigation, feed, profile panel), sticky search, and dark mode. The mobile app is built with React Native/Expo featuring 20+ screens, drawer navigation, and native image picking.
The problem
Building a consistent cross-platform experience with secure auth, real-time updates, and role-based access while keeping the codebase maintainable across three separate repositories.
The solution
Express 5 backend with TypeScript strict mode, Zod validation, and dual API mount paths. Shared JWT auth strategy across all clients. Socket.io piggybacking on the HTTP server for real-time push after DB writes. Three CI/CD GitHub Actions workflows — one per repo.
Process
1. Designed MongoDB schemas for 7 entities, built Express 5 REST API (~65 endpoints) with JWT cookie rotation and Zod validation, wired Socket.io real-time events.
2. Built React 19 web SPA with three-column responsive layout, sticky search, post feed, events, clubs, admin dashboard, and dark mode.
3. Developed React Native (Expo) mobile app with 20+ screens, drawer + tab navigation, image picker, and platform-aware API config.
4. Set up GitHub Actions CI/CD for all three repos, Docker multi-stage backend build, and docker-compose for local deployment.
5. Wrote Jest + supertest tests with mongodb-memory-server, auto-generated OpenAPI 3.0 docs from Zod schemas.
What I learned
Dual API mount paths enable gradual version migration. Promise.allSettled for parallel uploads prevents one failure from aborting a batch. Email failures during registration should be non-fatal. Mongoose connection pooling needs special handling for test isolation with mongodb-memory-server.
Features
- JWT auth with httpOnly cookie rotation (access 15m + refresh 7d)
- Three-role RBAC: student, org_admin, admin
- Post feed with image carousels, likes, saves, comments
- Event listings with RSVP management
- Club directory and management
- Real-time notifications via Socket.io
- Admin dashboard with analytics
- Email verification and password reset
- Cloudinary image uploads
- Dark mode across all platforms
- Swagger/OpenAPI docs auto-generated from Zod schemas
- Responsive web layout (desktop three-column, mobile bottom-nav)
- Docker deployment with docker-compose
Results
- Fully functional backend serving all three clients from a single API
- Responsive React 19 web app with desktop and mobile layouts
- Cross-platform React Native mobile app (Android + iOS)
- CI/CD pipelines with automated linting, building, and testing
- Docker containerization with one-command local deployment
- Auto-generated API documentation served via Swagger UI
My contribution
- - Designed and built the entire REST API with Express 5 + TypeScript
- - Implemented JWT auth with cookie rotation and RBAC
- - Designed MongoDB schemas for 7 entity types
- - Built Socket.io real-time event system
- - Contributed to both web and mobile frontend development
- - Set up CI/CD, Docker, and automated testing