Skip to content
This repository has been archived by the owner on Aug 8, 2019. It is now read-only.

SuyashD95/Pomodoro-Timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pomodoro-Timer

A simple Java-based Pomodoro Timer

Developed by Suyash Dayal and Kanika Sharma

Introduction

Features and the Key Objectives

This is a simple application which was initially created as a project to be submitted for our Java course in the second year of undergraduate CS program...

Our primary focus for this project was to deliver an application which is simple, intuitive and elegant in design... We focused more on the UI and design aspects of the application instead of adding more functionality...

This application is a Pomodoro Timer and hence, it follows the traditional conventions regarding the time alloted to each interval, breaks (i.e, 25 minutes for the normal rounds, 15 minutes for long breaks and 5 minutes for short breaks) or the number of rounds (i.e, 4) for each Pomodoro session.

We did add the usual functionality to enhance the user experience:

  1. Pausing/resuming the focus sessions for having temporary breaks.
  2. Skipping the intervals/break periods to instantly start the next focus phase of the session.
  3. Adding a stop/reset button to terminate the ongoing Pomodoro Session.

Over the years, we thought of improving the existing code base by adding features like:

  • Allowing users to change the timing periods/ no. of breaks.
  • Adding more themes.
  • Creating multiple profiles/templates for different use cases.
  • Adding sound
  • Plus, cleaning the code to create a more maintainable or readable piece of code.

But, in the end, we decided not to make any more changes to this project since it could tell act as a starting line and hence, a reference point on how much we have grown up as a software developer (in the future).

Challenges and Shortcomings

Since, this is our first project... Therefore, you will witness that the code has not been properly commented as well as refactored.. Even though, we have technically implemented this program using the object-oriented programming paradigm, it can be easily observed that we have failed to follow the principles which make OOP effective... Everything is wrapped up in a single class..

We did try to create different classes and separate the functionality but due to the increasing complexity of our project, we decided to keep everything in a single class..

But, this is mainly due to our lack of knowledge in creating a well-maintainable piece of software (at the time of developing this mini-java app).

This project is a GUI based application and hence, we used the Java's native Swing framework for this purpose... Also, we experimented and used the MigLayout framework (added to the project as an external JAR file) to enhance the look and feel for this application.

Our Perspectives and why we decided to Share this Project through GitHub

This project is like our first baby and we are really attached to it... It took us nearly 4-5 weeks to create this project and hence, convert our abstract thoughts into a real, physical form (as real or physical, as a software can get).. I know that this project has a lot of shortcomings but I hope that you will see it as an effort of two kids who are trying to create something for which they can feel proud.. And, this project definitely make us feel proud of ourselves...

At the time of creating this project, we were not aware about the existence of Git or for that matter, GitHub.. Hence, we are directly uploading our complete source code, including the other resources required to run this project.

And, once, we came to know the existence of Git, we still didn't wish to add our much-loved project since we felt that it was not built or created for being released or distributed to the general public..

But, we have always believed in the concept that a developer is not a lone ranger and we could only become better if we share and collaborate with each other.. Hence, with that thought-process and spirit, we decided to finally share it with all of you..

This is why, you will need to use an IDE like Eclipse, Netbeans or command-line (terminal for Linux systems) to run this program.

In fact, this project also remains the only project that we ever built without using an IDE... We built this project on Sublime Text, but for the sake of making it easier for the public by reducing their work of compiling and running this program, using Terminal (or Command-Line on Windows), we decided to shift it to an IDE (Eclipse) before uploading this program.

This application has been tested on both Linux and Windows machines and the application is running smoothly on both the platforms.

We hope that this project could inspire and encourage you in the same way that it did for us... We would love to see your own interpretation on how could this simple piece of software could become better...

With much regards, Suyash & Kanika.

Releases

No releases published

Packages

No packages published

Languages