Skip to main content
Johannes
All projects

CariKos

WebSeptember 2026 – Present

A web platform that gathers boarding-house listings near campus in one place, with verified information.

  • Node.js
  • Express
  • MongoDB
  • Socket.IO
  • JWT
  • Cloudinary

The problem

Information about boarding houses (kos) near campus is spread across WhatsApp groups, social media, and banners. It is hard to find a complete, current, trustworthy listing.

What I built

CariKos serves three kinds of users. Seekers search and filter listings, find the nearest ones, save favorites, book rooms, leave reviews, and chat with owners. Owners manage their listings, room availability, photos, and incoming bookings. Admins verify listings before they go public.

CariKos landing page and campus search interface
CariKos recommended boarding houses catalog with filtering

The result

  • Room booking updates available rooms automatically when an owner approves a request.
  • Role-based access control with protection against users promoting themselves to admin.
  • A Postman test suite with 33 automated assertions covers the API.

My role

Coordinated a 4-person course team (technical decisions, meetings, task split) and built the admin module: kos verification, role-based access control, and a statistics dashboard. Also worked on booking, reviews, nearby search, image upload, and real-time chat and notifications.

Technical details

Tech stack

Backend
  • Node.js
  • Express
  • JWT + bcrypt
Database
  • MongoDB
Real-time
  • Socket.IO
Media
  • Cloudinary
  • Multer
Testing
  • Postman

Architecture

  1. Seeker / Owner / AdminThree roles with separate permissions.
  2. Express APIJWT login and role checks on every request.
  3. MongoDBListings, bookings, reviews, and users.
  4. Socket.IOLive chat and notifications.
  5. CloudinaryStores listing photos.
One API serves three roles, with a real-time channel for chat and notifications.

Key decisions

  • Nearby search with the Haversine formula

    It computes the distance across the earth's surface, so results can be limited to a radius around the user.

  • Admin verification before publishing

    Listings only go public after review, which addresses the trust problem that scattered posts have.

Limitations

  • This is a team course project with four members.