project-proposal-2025

ViewPort Calendar (Privacy-aware calendar sharing)

Abstract

Have you ever wanted to share the events in your personal calendar with others? How do you go about sharing your calendar with friends or family? How do you choose which events are shared and in what detail? ViewPort calendar is a software project aimed at helping answer these questions.

ViewPort Calendar is a software project which aims at assisting users with creating and selectively sharing calendar events without hassle. It will allow users to create events on personal calendars and selectively share them with chosen groups, defining granular visibility levels—from full event details to simple availability markers or complete invisibility. The quality attributes crucial to the project’s success are Modularity, Extensibility, and Reliability.

Author

Name: Hunter Whitlock

Student number: 46987154

Functionality

The system will provide a simple web application that will allow users to manage both individual and shared calendars while maintaining fine-grained control over how events are shared with others. The system will support event creation, management, and selective visibility, while offering a way to view individual and shared calendars seperately.

Features

Scope

Quality Attributes

The key quality attributes for this proposal are listed below. Although security is not mentioned, it is still important to consider in the architectural design and implementation.

Modularity

Modularity is a significant quality attribute for this project since it has multiple componets which need to work seperately and in sync to ensure a successful user experience. Utilising a Service-Based Architecture, key features such as authentication, calendar management, event management, visibility rules and calendar viewing, and sharing presets can be implemented independently.

Extensibility

Extensibility is another important quality attribute for this project. As a Calendar application, it is missing many quality of life and useful features found in other applications such as recurring events and mass event editing tools, in addition to missing an import/sync feature from external calendar services such as Google and Apple calendars. It is important that the solutions architecture and REST API is sufficient in allowing for additional features and integrations without needing significant refactoring.

Reliability

Reliability is the final quality attribute deemed critical for this project. However, it is critical that data consistency is maintained between the users and the database where it is stored. Since this is a privacy-aware calendar application, it needs to ensure:

Evaluation

Modularity

Modularity will be evaluated by how independent each service is.

Extensibility

Extensibility will be evaluated by measuring how easily additional features can be added after the MVP is completed.

Reliability

Reliability will be evaluated based on data correctness, visibility enforcement, and error handling.