Giter VIP home page Giter VIP logo

raiderplanner's Introduction

RaiderPlanner

The best study planner since the Gantt Diagram

Please have a look at the project website(old website) for information about RaiderPlanner.

If you would like to contribute to RaiderPlanner, then please read about configuring the development toolchain and then read the contributor guidelines.

Branch Build status
gzdwsu/master: Build Status

raiderplanner's People

Contributors

rsanchez-wsu avatar markelz0r avatar alienturnedhuman avatar aashishkebab avatar mikeknows avatar barrett-matthew avatar klemmert avatar steelbeast avatar adamhs1997 avatar bijan-ghasemi-afshar avatar natcrossman avatar logankrause16 avatar michaelpantoja avatar egfarr avatar git-ben18 avatar washs118 avatar terrillc13 avatar alenabrand avatar jaredmoon avatar smith-jake avatar lakerimff avatar mbagwell avatar levans07 avatar rachelhill8 avatar jordanjclay123 avatar twilightluigi avatar impium avatar theehlien avatar kragan-13 avatar austinhans17 avatar

Stargazers

 avatar Zach Noble avatar  avatar

Watchers

James Cloos avatar  avatar

raiderplanner's Issues

Navigation Bar

The titles in the navigation bar do not describe the content well. Rather than 'Contribute', perhaps 'What We Can Do" and 'Help' should be simply 'Contact'. The video that highlights the current features should be in about, so when you click the next button it should bring you immediately to the six categories . Also there is a typo in the first full sentence, it should be fixed to "RaiderPlanner will be there to help you.

HTML doesn't pass validator check

None of the html files validate which includes the following:

index.html
help.html
download.html
contribute.html
about.html

The biggest issue seems to be images not containing alt tags and the language not being defined at the top which should be a very easy fix.

Ambiguity when selecting a Study Profile

issue1add

When a study profile is double clicked to view info and is NOT current, the highlighting of the row disappears, as seen in the attached screenshot where 'First year Gryffindor' is selected.

A proposed solution would be to have the information at the bottom of the window display selected module information on single click, while having a separate indicator for the 'Current' (active) module selected for visibility. (EX: A green square next to the table row instead of highlighting the whole row.)

Add Spring Boot dependencies for consuming RESTful web services

Currently, the RaiderPlanner app does include dependencies to support the consumption of RESTful services. "REST" ( or "Representational state transfer") uses the client-server architecture to distribute a piece of software over the internet to other applications. RESTful services are interoperable with many different languages and operating systems, are are a convenient method for communication between internet-enabled machines. For instance, the USAJobs website offers a RESTful service that allows developers to consume an employment availability and salary service in their applications.

Spring Boot Rest provides an extensive but efficient framework for both producing and consuming RESTful services. The Spring Web MVC provides the tools for requesting and consuming REST services, with relatively little overhead.
[For more information about Spring Framework: https://en.wikipedia.org/wiki/Spring_Framework]

This issue can be broken down into an architectural phase and a specific Web MVC implementation phase.

Phase 1:
Add the dependencies and plug-ins for Spring Boot Rest to the gradle.build file. We can use the Maven Repository (https://mvnrepository.com) to search for the following dependencies, and the code for the build file.

  • spring-webmvc - this provides the architecture for making HTTP GET requests
  • jackson-databind - this provides the architecture for processing the responses to GET requests
  • javax.servlet-api - this also provides support for sending and receiving GET requests

After the configuration is complete, we want to test RaiderPlanner's ability to consume a test service.

Phase 2:

  • Find a testing service at www.programmableweb.com
  • Create a test class for the service that
    1. Makes the call to the service
      a) We'll use an ObjectMapper object to "run" the service and parse the response. [More about the Jackson ObjectMapper: https://www.baeldung.com/jackson-object-mapper-tutorial]
      b) We'll check that the HTTP status code is OK (this can be done using a Junit assertion)
      c) We'll check the key-value pairs of the response

Once we can consume RESTful web services, we can create issues for specific services, and modify our viewers to display the service results. One issue already referred to would be to use the USAJobs service to display available employment and internship positions on the RaiderPlanner home screen. This improvement would increase RaiderPlanner's applications, as well as reinforce student productivity.

No Dialog Box requiring users to enter account information

If the user does not enter a username, w number, salutation or email address clicking the OK button does not provide a dialog box requiring them to do so. Currently the OK button highlights in blue and nothing happens until you enter the required information.

48678085-92ef5380-eb4c-11e8-85aa-65c4862729e5

Add styling to help.html

There is a lack of styling in the help.html page, as it is currently a bare bones webpage with some hyperlinks.
Annotation 2019-03-23 154920

I will add styling features that follow similar styling to that of the index.html file.

Unable to add task information to the "Add a New Milestone" feature.

When adding a new milestone every text box except for the Task dialogue box is working. But since the it wont allow you to type anything you can't add a new milestone.

image

I believe this issue can be fixed by going through the "Milestone.fxml" file and adding the necessary code to allow the text box to work properly.

Limit number of characters allowed in input text fields during run-time

This is somewhat of an expansion of the fix for ISSUE #8. Currently, when adding an Activity, Account, or Requirement, the user is able to type an infinite amount of characters during run-time into each instance of textField's and textArea's. This could cause an overflow error, or cause the program to freeze on some systems.
ISSUE27

A possible solution to this issue would involve adding a textFormatter to each textField and textArea in the Activity, Account, and Requirement controllers that set a limit on the amount of characters typed into each instance.

Study Dashboard Text Not Being Replaced

Pic1
Pic2
Pic3

As seen from the images above, when the user goes to another tab and back to the study dashboard it will keep the other tab's welcome message. I will correct this issue and add a simple welcome message asking the user to select the subject to start studying.

Welcome text to be used: "Please select the subject to study."

Create account video

Video is out of place and could be better organized and be more appealing in a different spot such as below the highlighting raider planner so when user finished that video they are more likely to go right on to the next.

Add an Activity does not give information from the 'i' icons to get valid inputs.

Add Activity does not produce expected behavior. We should create a hover feature over the 'i' information icons to describe what valid input is, and proper procedure to make an activity appear in the calendar.
screen shot 2019-01-22 at 12 05 16 pm

I was able to enter text in all fields except for the Tasks text window. I was never able to hit the "ok" button to enter the activity (the OK button remained unfunctional with any of my inputs). I would like to add more information about what is valid input, how to maneuver the page in general, and fix any bugs associated with accepting input.

screen shot 2019-01-22 at 12 19 14 pm

I believe the code for this section is in ActivityController.java.

Add student "Major" to Account Creation

Users should be able to add their major when creating an account.
create account window

This could allow users to track their progress within their intended major.
To add this feature, the following files will need to be updated:

  • Person.java
    A variable to hold studentMajor should be added, as well as a constructor that includes the studentMajor field.

  • AccountController.java
    A TextField variable should be added for the text field. Also, a validateMajor() function should be added. Perhaps a ComboBox could be added in the future, with all majors offered at Wright State, but this issue is focused on basic functionality.

  • CreateAccount.fxml
    This file includes the GUI design for the account creation menu. As it is currently designed, the third row of the GridPane has enough space to include a new TextField for academic major.
    <HBox GridPane.rowIndex="3"> ... </HBox>

I am continuing to identify parts of the code that would need to be modified or updated to include this enhancement.

Add / Delete Module Functionality

This issue / enhancement was addressed before (rsanchez-wsu#454)

Overview

Implementing add and delete functionality to the modules will ensure users can keep up with any schedule changes during their semester. Two buttons ( add / delete) can be added below to ensure easy customization of their schedule.

image

Menu Button doesn't work properly all the time.

Sometimes when I launch the program the menu button doesn't let me click on it except for a tiny a tiny 1 pixel wide line at the right side of the button. The first picture showing the location and the second showing that it doesn't work on top of the button
2019_01_30_17_26_16_raiderplanner
2019_01_30_17_27_11_raiderplanner

Study Profile tables too long

Found an old issue that is still not fixed. The tables used in the study profile and modules are too long and this is causing the data and buttons at the bottom of the table to go off the screen. This is causing them to be unknown to the user.
My idea for a fix is to change the default size of the table. This would allow the buttons to stay permanently in their intended location and if needed add a scroll bar to the table.

Feature - Chatroom

Problem
Currently in project, there is a chat feature that is only able to echo text typed into the prompt.

Goal
Client-server communications must be implemented in order to allow for the chatroom to function properly.

Requirements for completion
The solution must at a minimum have a server that echos messages to all connected clients.

  • Server must be implemented as a secondary executable inside the current project

  • Server must echo all incoming messages to all connected clients with added timestamps

  • Server must be able to handle multiple clients at the same time

  • Client must be able to take input from the user and send it as a message to the server
    Current chat code is located in "/src/edu/wright/cs/raiderplanner/controller/ChatController.java"

Functionality to Add Module Assignments

Overview

This is an extension on my previous enhancement, where I implemented the ability to add modules.

Currently, when adding a new module to a study planner, the user is unable to add assignments to it. Adding this functionality will ensure that each module can stay up to date with assignments. An "Add Assignment" button will be placed at the bottom left of the application to access this functionality.

image

For the RaiderPlanner website, multiple pages do nothing because HTML files have little or no code

Under the docs folder, you can see multiple html files for the RaiderPlanner website. index.html is the only one truly fleshed out. help.html at the very least needs styling done so it isn't just a generic unstyled webpage, and the other three files are completely blank, indicating that they were supposed to have some purpose but were never finished. These should be given complete coding and styling so the website is finally completed.

Creating and Removing a New Task Type

Problem
When creating a new task in a module, the buttons for adding and removing task types are not clearly labeled. Additionally, there is no confirmation message or warning before a task type is removed
raiderplanner task type

Solution
The issues come from the TaskController.Java file. Resizing the New Task popup window would allow the buttons to be read, but the labels for the buttons also could be condensed or changed. To fix the issue of removing a task type not giving a warning, additional code should be added to warn the user when a task type is being removed.

Errors occur when user doesn't select profile to open.

Overview

When a user goes to open an existing profile, then changes his/her mind and chooses to cancel the operation without choosing a file, unhandled exceptions cause errors and unwanted behavior in RaiderPlanner.

Steps to Recreate

Open the Open Profile dialog, then click cancel:
image

Resulting Problems

Immediately after clicking "Cancel", a NullPointerException is thrown. The stack trace is printed to the console:

Caused by: java.lang.NullPointerException
	at edu.wright.cs.raiderplanner.controller.MainController.loadFile(MainController.java:253)
	at edu.wright.cs.raiderplanner.controller.MenuController.openProfile(MenuController.java:580)
	... 73 more

The next time the user tries to open an existing profile (by clicking the "Open Profile" button again), he/she gets the following error:
image

After clicking past this error, the user is presented with the file chooser dialog again. The user can either select a new profile without further issue, or recreate the above issue by clicking "Cancel" again.

Cause of Problems

This problem stems from the way the file chooser handles passing the .dat file back to RaiderPlanner. When the file chooser is closed, it simply returns the selected file back to RaiderPlanner. If no file is selected, as is the case when the user chooses to "Cancel" a file selection, a null pointer is returned. This triggers the NullPointerException shown above. Although the exception is unhandled, RaiderPlanner manages to run past it. However, the null pointer is set to RaiderPlanner's current profile file. When the user goes to open a new profile again, the function called to open the file chooser dialog tries to save the current user's profile data. As the current profile is currently set to "null", the user gets an error saying that RaiderPlanner "Failed to save your data".

Resolution

The issue can be resolved by checking whether the file object returned from the file chooser is null. If null, RaiderPlanner should not set the current profile file to this null pointer.

about.html, contribute.html, download.html are all empty

These webpages act as the base for the project and telling others how to contribute. Of course these pages are the start of a new site and as such they are bare. However in order for the webpages to be relevant to the repository they need to be filled. I plan on filling these pages, adding navigation from them to the other pages as well.

Improve help.html with a accordion menu

I last edited the help.html page by matching it with the styling on the home page. Now the help page should have a proper FAQ section. This will be in the form of an accordion drop down menu in which users will navigate to find answers they might have. It will be partitioned first by broad questions then have focused questioned inside that contain their respective answers.

Structure of index.html

Index.html is missing several aspects of modern web development such as having the information on the page be read off if the user is visually impaired, or displaying alternate text if a picture doesn't load correctly. This would normally be an easy enough fix but with the file being as disorganized as it is it could take a bit longer. A normalize.css file needs to be added, as well as the changes mentioned up above so the website is more accessible to everyone.

No way of creating new Study Profiles from within RaiderPlanner

RaiderPlanner should have an option to create study profiles from within itself, instead of a user creating a XML file from outside of the application. Along with this other functionality improvement could be made. Such as users being able to add their own modules. The only thing a user can add to this application is milestones which depend on tasks to be assigned to them. There isn't much user functionality in general to warrant using RaiderPlanner over any other organization application.

Null Pointer Exception When No Salutation Creating Account.

When no salutation is selected in the menu, eclipse reports a null pointer exception and the user gets no error message when trying to hit okay to create an account. I would like to add a prompt when the salutation is not selected and the ok button is pressed that alerts to the user that something must be selected in that field.

GUI Improvements for pop-ups

Some of the pop-ups encountered in RaiderPlanner could use some improvements. An example would be the login window. The login window just looks bland and colorless. I would like to create a color scheme for the pop-ups so they don't look so bland. Also there are little instructions on what is required to login, so I would like to add some to help the user when they first login. The text is really small on some of the pop-ups and I would like to make that bigger if possible.
Screenshot (2)
Screenshot (4)

No character limit to "Name" and "Details" field when adding new requirement

There is no character limit to the "name" and "details" textfields when adding a new requirement. This could cause an overflow error, or cause the program to freeze on some systems.

issue_8

This issue can be handled in number of ways, however, a simple solution would be to add two conditions to the handleChange() function in the AccountController class that specify that the character limit of both the "name" and "quantity" TextField's are less than the desired character limit. Reasonable character limits would be 50 char's for the name field and 500 char's for the details field.

Notification Dropdown Improvement

The notification dropdown is very small in RaiderPlanner. I would like to make it much bigger. The text is also very small as well. I would like to increase that as well. Also the welcome text in the Study Dashboard page is small and not formatted. It just looks tacky. I would like to change its color and maybe center it on the page as well.
Screenshot1
image

Make "Mark all as read" reversible for notifications

Current Deficiency

In the notifications menu, if the user clicks "Mark all as read", this action is not reversible. This might be annoying to the user if they click on the button but then decide they don't have time to read the notifications. In this case, they'd like to see the items as unread for next time.

image

Completion Criteria

The simplest (albeit ham-fisted) solution is to change the button text to "Mark all as unread" whenever "Mark all as read" has been clicked. The button can toggle between these two states. Upon clicking "Mark all as unread", the following should occur:

  • The notifications icon changes back to its appearance when there are unread notifications.
  • The style of the individual notifications should revert to the unread appearance.

Complete Button for Requirements

The requirements of either new tasks or the requirements tab on it's own have no way to change if the requirement has been completed.
image

This affects the new task as well and keeps the task from being marked complete.
Before new task is added:
image

After new task is added:
image

Calendar does not show or populate.

Defect

When clicking the calendar button in the top right of the application, the calendar does not appear or populate.

capture
capture1

This anomaly is caused by a null pointer exception. As the calendar is loaded, its events are not instantiated. When the events are called upon to be added to the calendar, there is no reference to them, causing the error.

capture2

Solution
The fix should be simple. Instantiate the calendar events before they are referenced.

About.html is non-existant

The About.html file in the docs folder has no code inside the file. To complete this issue all that is needed would be to have some sort of structure in the coding for an about page for the RaiderPlanner. Writing a few paragraphs or headings would help alleviate this issue.

Begin adding new feature to RaiderPlanner website: "Raider Planner Online Demo"

Obviously this is probably more of a longer-term addition, so it won't be completed in the next two days, but it's an idea I had a while back that could be interesting. Put a link on the index.html page that takes the user to a demo page of some sort that implements maybe a basic version of Raider Planner to play with, allowing someone to become familiar with how it works before downloading the full thing. Full disclosure, I also don't know exactly how possible this is to do, but I'm sure someone could find a way to implement it well.

Deadline date does not populate correctly

When you save a task the deadline date is not saved or saved incorrectly. The date saved is either nothing at all or 20 days sooner. Method is validateDeadline and handleSubmit.

Deadline date does not populate correctly

When you save a task the deadline date is not saved or saved incorrectly. The date saved is either nothing at all or 20 days sooner. Method is validateDeadline and handleSubmit.

Contact Information

This section is still blank and could use more information here and banner is to large and could use more style added to it.

Add "Remove" Functionality to Assignment Requirements and Tasks

This issue is a continuation of issue rsanchez-wsu#445 from rshanchez-wsu/RaiderPlanner by AndrewVaughn.

Overview

When a user adds a requirement or task to an assignment, he or she may want to delete it in the future. If they wish to delete, it cannot be completed because the delete button is grayed out. I believe that the delete functionality has not been implemented yet.

image

Add a "Frequently Asked Questions" Dropdown in the RaiderHelper Pane.

The RaiderPlanner is not the most user-friendly program at this point. I would like to add frequently asked questions and add step-by-step instructions on how to work RaiderPlanner under the Help Pane. I will start with adding instructions on how to import a HUB file (and what it is), what it does, and what the current .xml file options are. Second, have instructions about how to add activities. This section can be used in the future to answer other commonly asked questions. This will be more user-friendly than going to the manual each time (which is outdated).

screen shot 2019-03-06 at 1 36 52 pm

This is where the frequently asked questions can be handled.

Add an Activity doesn't work

While trying to add a new activity through the "Add an Activity" feature, I can enter all the information and submit the activity but I can't find where it's added or if was.

new activity

I want to try finding where the activity needs to be added in the planner and implement it.

Rework limiting user input

This is a rework of PR 49. As it stands, the following code functions, but it is a bit messy and difficult to interpret.

image

I will create a separate method to handle limiting the user input into the text fields and text areas in the activity, requirement, and task controllers. I feel it is necessary to separate processing requirements and dependencies from character limitation to avoid unnecessary execution of code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.