Skip to content
sree edited this page May 11, 2025 · 7 revisions

Introduction

TaskHub is a scalable, secure, and modular note-taking and labeling system inspired by Google Keep. It is designed and implemented as a practical case study in Object-Oriented Analysis and Design (OOAD). This project forms part of an academic exploration into the disciplines of software architecture, cloud-native systems, and platform engineering, aligned with the learning objectives of:

  • SWE5001 – Architecting Scalable Systems
  • SWE5006 – Software Analysis and Design

The system is built using a monorepo-based microservice architecture, with dedicated services for authentication, note management, label handling, and a decoupled frontend. All services are containerized, routed through a centralized API Gateway, and deployed with production-aligned practices such as CI/CD automation, observability, and reverse proxy configuration.

Project Objectives

  • Apply OOAD methodology to analyze, model, and document a distributed microservice system.
  • Implement a real-world, Google Keep-inspired system with authentication, notes, and labels.
  • Practice scalable and secure architectural design using Node.js, React, MongoDB, and Docker.
  • Integrate industry-grade patterns including API Gateway, Reverse Proxy, and Service Observability.
  • Deploy the system on DigitalOcean using containerization and automated pipelines.

Key Concepts Covered

  • Use Case and Class Modeling (SWE5006)
  • Architectural Views and Design Patterns (SWE5001)
  • Microservice decomposition and containerization
  • Cloud-native practices such as load balancing and service orchestration
  • Platform Engineering elements including observability and gateway management
  • CI/CD automation using GitHub Actions

Wiki Structure

Section Description
1. Requirements Functional and non-functional requirements specification
2. Use Case Model Use case diagrams and textual descriptions
3. Analysis Model Analysis Model
4. Design Model Design Model
5. Transition from Analysis to Design Trasition from Analysis to Design
[6. 4+1 View](./4 + 1 - View - Model) 4+1 View
7. Deployment DigitalOcean setup, CI/CD configuration, and runtime environment
8. Evaluation Summary of design decisions, trade-offs, and final assessment

This system is not intended to be a production-grade clone of Google Keep. Instead, it serves as a deliberate academic implementation emphasizing structured design, traceability, and best practices in modern software engineering.

Clone this wiki locally