Dicoding Mentoring Platform API
Backend API for a mentoring platform, managing users, mentors, mentees, and sessions.
Role: Project Lead, Backend Engineer, Cloud Engineer
Tech Stacks: Node.js, Express.js, TypeScript, Docker, MySQL
Architecture: Google Cloud Console-based, using Cloud Run for scalability, Firestore for chat, and Cloud SQL (MySQL) for core business data. Features a four-layer REST API (controller, service, repository, model).
Alright, let's get real: I was all about the backend and DevOps for this one. Here's how we rolled:
- Cloud Google Cloud Console. Everything's on Cloud Run, so it scales up when you need it and chills (read: costs almost nothing) when you don't. No more paying for idle servers, thank you very much.
- Databases Double trouble: Firestore for chat (because real-time is a vibe) and MySQL for the serious business data. Both are managed, both are reliable, and both are someone else's problem if they go down.
- API Four layers, no shortcuts: Controller, Service, Repository, Model. Controller takes the heat from the outside world, Service does the thinking, Repository talks to the DBs, Model keeps the data in check. Clean, testable, and no spaghetti.
- DevOps CI/CD all the way. Push code, let the pipeline do its thing, and boom—deployed. Monitoring? Of course. Logs? Got 'em. Scaling? Automatic. Downtime? Nah.
Basically: I built the backend so it just works, scales, and doesn't wake me up at 3am. If you want a mentoring platform that doesn't suck, this is how you do it.