cis3296s23 / applebaum-software-design-section-704-projects-spring-23

Project Proposals for Prof. Applebaum Section 704
0 stars 1 forks source link

Pomodoro Forest #1

Open alishahidd opened 1 year ago

alishahidd commented 1 year ago

Project Abstract

This document proposes a novel application of a Pomodoro timer. Its named after the Pomodoro time management technique which follows a person focusing for 25 minutes, taking a 5 minute break, and repeating. A user could use a normal timer, but this project would gamify productivity. Every time a user finishes a productivity session, a new tree or plant gets planted in their forest. If they fail to focus, the plant will die. Users get coins as well whey finish a session which they can use to buy different types of plants.

Conceptual Design

Theres different approaches we can take to creating this project. The application can be designed for smartphones and for computers. The application should be locally based, but it may be built with a client-server architecture. The client-side will be the application that users install on their device. The server-side will be a cloud-based service that stores a user’s information.

Depending on the route we take, the application can be created using Swift and XCode, or we can use languages like Java, HTML, CSS, and JavaScript. Potential frameworks include React Native, Flutter, or Ionic to create a cross platform application. A potential library we could use is Luxon or MomentJS. They both enable developers to handle time and create countdown timers.

Proof of Concept

In this document or a readme file in the repository, include instructions on how to compile and run the code. Specify the operating system version and the version of the compiler to used build the project.

If your project is as contribution to an open source, you need to show you can modify, compile and run the source code of the project.

Heres a link to a public GitHub repository for a similar project:

https://github.com/ivoronin/TomatoBar

This project is a macOS menu bar application that allows a user to use the Pomodoro Technique. The application is created with Swift, which is one of the potential programming languages that we can use. Given that this is a Swift application, I believe it may only run on macOS. In order to run the program a user needs to download a zip file, extract the application, and simply run it. Another way to install it is to run the following command:

brew install --cask tomatobar

When you first click on the file you might encounter the following window: image

Press okay and proceed to open your system settings, and go to Privacy & Security. Scroll all the way down, and you should see “TomatoBar was blocked from use because it is not from an identified developer. Click the “Open Anyway” button. You’’ be prompted for your password. Enter it at the application will work now. The device this compiled on is running macOS Ventura 13.1. It has Apple Swift version 5.7.2 with the following compiler: (swiftlang-5.7.2.135.5 clang-1400.0.29.51). image

This is what the application looks like when it starts up: image

Background

The product will open to a screen with big button that has a set time amount inside it. The user can then move a slider that changes the amount of time desired for their productivity session, and corresponding break. They can also choose from there what kind of tree or plant they want planted once the session is complete. There will also need to be a button, or a swipe action built in that allows the user to see all the trees and plants they have planted as a result of their productivity.

The trees and plants will need to be created as digital assets. These assets can be created in blender or obtained through open-source means. There will also need to be a system created for how many coins a user collects once they have completed their productivity session. This will allow them to buy different types of plants from a different screen.

The inspiration for this project is a proprietary app called Forest. It’s exactly as described above except it is only available for the iPhone and Android. It is not available on any desktop platform. Currently users are glued to their phones. Forest is great, but the user still must go on their phone to use it. The product we create will eliminate that and allow users to work with one device.

Here are some screenshots from the Forest application: image image

Required Resources

If we decide to go the iOS or macOS route, we must use XCode, and have access to an iPhone or Mac computer that is running the latest iOS 16 or macOS Ventura operating systems. Temple has macOS devices in Tuttleman and at the Tech Center.

Everyone might not have those devices so it also makes sense to make a React application that can run on any device. If at least one group member has an iPhone, Android, as well as Windows or macOS device then applications can be built to work on all of them. We may also need cloud compute as well through AWS, Azure, or Google Cloud to store user information if we decide to not have it stored locally. This application can be compiled using Expo which should work on any computer.