Skip to content

Introduction

Cotapher edited this page Jun 30, 2022 · 2 revisions

Description

Paninotes is a desktop note-taking program built with Kotlin, JavaFX, and Spring Boot 2. The program was created as our course project for CS398: Application Development.

There are two components that make up Paninotes: a client and a server. (Contained in the PaninotesClient and PaninotesServer folders respectively.) The client is the user program that enables creating, editing, and saving notes locally. The server is a database that makes it possible to back up users' notes to the cloud.

Process and SDLC

Our project development was structured into 4 milestones. Milestone 1 was our planning and design phase, where we conducted user interviews and decided on our requirements, architecture, and general UX design. Milestones 2-4 were each 2 week sprints, with each sprint concluded by a demo.

We decided on how we would prioritize our requirements in each sprint during planning.

  • Sprint 1 would be focused on the essential requirements: the features that are required for a note-taking app to work. These included the ability to create and save notes, and ensure that the notes persisted in local storage.
  • Sprint 2 had priority on the common features that were requested in our user interviews. These included having multiple notes open (using tabs, similar to VSCode), and setting up a database so the notes can be backed up into there.
  • Sprint 3 was focused nice-to-have features that weren't critical to our app design. These included syntax highlighting, since we wanted our note app to be geared to Computer Science students, and some more usage statistics.

Project Tracking

We tracked all of our requirements, bugs, and spikes as issues on our GitLab. We used the issues board to organize our issues across 5 tags: Spike/Exploratory, In Progress, and High/Medium/Low Priority. To track our contributions, we make new branches for the issues we're working on, then create and review merge requests before merging into master. We usually required at least 1 approval from a team member before a merge request could be merged in. Additionally, we created a Discord bot to send notifications to our group Discord server whenever an issue or merge request is created, closed, updated, etc.

Our group met in person every Monday, Wednesday, and Friday during class time. We would typically extend our meetings to at least 30 minutes after class. Any of us could also call additional meetings outside of class time as needed, if there was anything that we were struggling on or that required the group's effort.

Clone this wiki locally