Case study · 2025
GiftLink
MERN platform for giving away household items
Connects people giving away household items with people who would rather reuse than buy new. Browse and filter the catalogue, open a gift's details and register to take part.
- Context
- Capstone project · IBM full-stack certificate
- Year
- 2025

Overview
A full-stack MERN application built as three independently deployable services: a React single-page app, an Express REST API on MongoDB with JWT authentication, and a separate sentiment-analysis microservice that scores reviews. Keeping sentiment scoring in its own service means it can be scaled or replaced without touching the core API.
Every write path is validated with express-validator, passwords are hashed with bcrypt, and the API logs through Pino. The backend is tested with Mocha, Chai, Sinon and Supertest; a GitHub Actions pipeline lints the backend and verifies the client's production build. The services were containerized and deployed to Kubernetes on IBM Cloud.
Key features
- Three services: React SPA, Express and MongoDB REST API, sentiment-analysis microservice
- JWT authentication with bcrypt-hashed passwords and validation on every write path
- Search and filtering by category, condition and age
- GitHub Actions CI; containerized and deployed to Kubernetes
Architecture
React SPA
React 18, React Router and React Bootstrap
Express API
MongoDB, JWT auth, express-validator and Pino logging
Sentiment service
Standalone microservice that scores reviews
- React
- Node.js
- Express
- MongoDB
- JWT
- Docker
- Kubernetes
- GitHub Actions
Screens
Select a screenshot to see it larger.
- , open larger image

Gift catalogue on the home page - , open larger image

Search with category, condition and age filters - , open larger image

Gift details page - , open larger image

Registration form - , open larger image

Home page after signing in - , open larger image

GitHub Actions runs for linting and build verification