Professional Documents
Culture Documents
DOCUMENTATION
USABLE FUNCTIONS:
• Sign up(user)
• Log in(user)
• User Profile(user)
• Access/Update / or Create Events
• Settings
For a new user he needs to sign up (include case) and create a unique
password to register themselves on the app
Existing user will be able to login directly and use the verify
password(include) for verifying themselves and if they cannot recall their
unique password, they will go through the forgot password case(exclude)
In the above use case diagram, we have one primary parent actor i.e.,
USER and two primary child actors i.e., NEW USER, EXISTING
USER.
On the other hand of the system, we have one secondary actor i.e., Data
Base (Administrator)
The Actor Existing user can communicate with every use case starting
from login and have access to verify password(include) and forgot
password(extend)
For new user they will have to enter their credentials create an account
(include case) and can use the app
Use case USER PROFILE has attributes like username, age, DOB i.e.,
Personal details
Use case SETTINGS provides the user to change his/her special
password, log out from his account, and change settings of the
application.
Both existing and new user can access all the features of the app they are
ADD EVENT, IMPORTANT TASK, TODAY’s TASK, TOTAL
TASKS.
Both existing and new user can access setting option to change colour,
appearance and password(all are include case).
Use case CREATE /DELETE EVENT has features for user to create,
delete, and view the events that need to be completed.
ENTITY - RELATIONSHIP DIAGRAM
Out app is a platform for every age group to that will help the
users to organise their day and increase their productivity. Out app is free and
easy to use.
The functioning of our app is explained using the ER diagram:
while (rs.next()) {
String username = rs.getString("username");
if (textField1.getText().equals(username)){
if(questions.getValue().equals("What is the name of your
favourite movie?")){
String answer = rs.getString("question1");
if(answer.equals(answer1.getText().strip())){
correct = true;
password = rs.getString("pass");
}
}
else if(questions.getValue().equals("What is the name of your
home town?")){
String answer = rs.getString("question2");
if(answer.equals(answer1.getText().strip())){
correct = true;
password = rs.getString("pass");
}
}
else if(questions.getValue().equals("Which is you favourite
novel?")){
String answer = rs.getString("question3");
if(answer.equals(answer1.getText().strip())){
correct = true;
password = rs.getString("pass");
}
}
}
}
if(correct){
answer1.clear();
textField1.clear();
MessageBox.displayMessage("Your Password is "+password ,"Password"
);
stage.setScene(scene4);
}else{
errorLabel4.setText("Check your answer or account name and try
again");
return;
}
}
textField.clear();
Button details = new Button("Add/View Details");
Button dueDate = new Button("Add Due Date");
Button deleteTask = new Button("Delete Task");
Button close = new Button(" X ");
close.setFont(Font.font(15));
close.setPadding(new Insets(3));
details.setStyle("-fx-background-color : #302f2e ; -fx-text-fill: white
; -fx-background-radius: 0 ; -fx-border-color : white");
details.hoverProperty().addListener((observable, oldValue, newValue) ->
{
if(newValue){
details.setStyle("-fx-background-color : white ; -fx-text-
fill:#302f2e; -fx-background-radius: 0 ; -fx-border-color : white");
}else{
details.setStyle("-fx-background-color : #302f2e ; -fx-text-
fill: white ; -fx-background-radius: 0 ; -fx-border-color : white");
}
});
details.setPadding(new Insets(10));
dueDate.setPadding(new Insets(10));
deleteTask.setPadding(new Insets(10));
vBox.setPadding(new Insets(10));
vBox.setStyle("-fx-background-color : #302f2e ; -fx-border-color :
white");
final boolean[] visible = {false};
hBox.setOnMouseClicked(event -> {
borderPane.getChildren().remove(borderPane.getRight());
if(event.getButton() == MouseButton.PRIMARY){
if(!visible[0]){
borderPane.setRight(vBox);
visible[0] = true;
}else{
borderPane.getChildren().remove(vBox);
visible[0] = false;
}
}
});
details.setOnAction(event -> {
int index = vBox.getChildren().indexOf(details);
TextArea textArea = new TextArea();
textArea.setMaxWidth(175);
textArea.setStyle("-fx-control-inner-background: #302f2e ; -fx-
text-fill : white; -fx-background-radius : 0 ");
ObservableList observableList = vBox.getChildren();
for(Object o : observableList){
if(o.getClass().equals(textArea.getClass())){
String string = ((TextArea) o).getText();
vBox.getChildren().remove(o);
tasks.setTaskDescription(string);
return;
}
}
vBox.getChildren().add(index + 1 , textArea);
textArea.setText(tasks.getTaskDescription());
textArea.setWrapText(true);
});
dueDate.setOnAction(event -> {
int index = vBox.getChildren().indexOf(dueDate);
DatePicker datePicker = new DatePicker();
datePicker.setPromptText(tasks.getDueDate());
ObservableList observableList = vBox.getChildren();
for(Object o : observableList){
if(o.getClass().equals(datePicker.getClass())){
if(((DatePicker) o).getValue()!=null) {
String string = ((DatePicker) o).getValue().toString();
tasks.setDueDate(string);
text1.setText("Due Date : " + tasks.getDueDate());
}
vBox.getChildren().remove(o);
return;
}
}
vBox.getChildren().add(index + 1 , datePicker);
});
close.setOnAction(event -> {
borderPane.getChildren().remove(vBox);
});
deleteTask.setOnAction(event -> {
listView.getItems().remove(hBox);
doneEvents.getItems().remove(hBox);
borderPane.getChildren().remove(vBox);
});
FUTURE SCOPE
A few more functionalities can be added to the application like moving the task between the different
list.