Skip to content

PiaDue/ProjectPoints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TimeManagement Challenge

Group-Project-Manager challenging all teammates to win the productivity challenge

Semester 3 Project (B.Sc. International Media and Computer Science at HTW Berlin)

Course: Computer Science 3

3 Contributors: Sina Han, Sonsiri Sotai, Pia Dünow

TechStack: Java, Spark Framework, MySQL DB

Original Repo: https://github.com/snahn2209/TiMaPro

Idea:

  • Users earn points as they complete tasks within projects
  • Transform mundane tasks into an engaging challenge, fostering a collaborative and productive environment

Bildschirm­foto 2023-02-26 um 12 08 26

Bildschirm­foto 2023-02-26 um 17 51 25

Bildschirm­foto 2023-02-26 um 17 51 34

Bildschirm­foto 2023-02-26 um 17 51 51

Bildschirm­foto 2023-02-26 um 17 52 19

User Stories

we completed:

  • [25] As a user I need to confirm that I want to mark a task as finished
    • only submit button
    • no window with cancel or confirm
  • [12] As a user I can mark my tasks as finished with a checkbox when they are done so that I can see how many tasks are still left
    • task does not is still listed in the tasks list
    • but marked as done (checkbox)
  • [3] As a user I can create tasks so that I know what to do to finish the project
    • it is still possible to assign a deadline in the past
  • [28] As a user I can see how many points I can earn finishing that task so that I am motivated to finish my tasks on time
  • [4] As a user I can prioritize tasks to work on the most important one first
    • user can assign a priority to a task
    • but tasks in the tasks list don't get ordered by priority
  • [26] As a user I can invite other users to the project so that they can also access and work on the project
    • users can only get invited when the project gets created
  • [24] As a user I can set or alter a deadline for a project so that all members know when the project has to be finished
    • deadline can't be edited after creation
    • it is possible to set a deadline in the past
  • [22] As a user I can give my project a name so that I know what this project is about
  • [2] As a user I can create a new project so that I have an overview over all of them
  • [18] As a user my points account gets ranked with my group members so that I feel more encouraged to earn more points
  • [5] As a user I have a points account so that I can see how productive I have been
  • [1] As a user I can see all my upcoming tasks in a list so that I can choose the most important ones and work more efficiently
    • task list is not ordered by deadline or priority
  • [29] As a user I can see all my upcoming projects in a list so that I can choose the most important ones first and work more efficiently.
    • projects are not ordered by deadline
  • [16] As a user I earn the most points for tasks that take the longest so that I get most rewarded for the hardest tasks
  • [19] As a user I can set up Challenges with my friends/teammates so that I get rewarded if I earn the most points
    • team members get ranked by the amount of points earned within the project
  • [20] As a user I can see the amount of points I would earn by completing this task so that I feel more motivated to work on hard tasks

MySQL localhost database

  • host = localhost
  • port = 3306
  • database = TMproject
  • username = root
  • password = TMProject

Schema: tmproject

CREATE SCHEMA `tmproject`;

projects table

CREATE TABLE tmproject.`projects` (
`projectID` bigint unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`deadline` date DEFAULT NULL,
PRIMARY KEY (`projectID`),
UNIQUE KEY `projectID` (`projectID`),
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

useraccount table

CREATE TABLE tmproject.`useraccount` (
  `userID` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `totalpoints` int DEFAULT NULL,
  PRIMARY KEY (`userID`),
  UNIQUE KEY `userID` (`userID`),
  UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

tasks table

CREATE TABLE tmproject.`tasks` (
  `taskID` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `deadline` date DEFAULT NULL,
  `timeestimation` double DEFAULT NULL,
  `prio` int DEFAULT NULL,
  `done` tinyint(1) DEFAULT NULL,
  `gotdonedate` date DEFAULT NULL,
  `maxpoints` int DEFAULT NULL,
  `responsibleuserid` bigint unsigned DEFAULT NULL,
  `projectid` bigint unsigned DEFAULT NULL,
  PRIMARY KEY (`taskID`),
  UNIQUE KEY `taskID` (`taskID`),
  KEY `responsibleuserid` (`responsibleuserid`),
  KEY `projectid` (`projectid`),
  CONSTRAINT `tasks_ibfk_1` FOREIGN KEY (`responsibleuserid`) REFERENCES `useraccount` (`userID`),
  CONSTRAINT `tasks_ibfk_2` FOREIGN KEY (`projectid`) REFERENCES `projects` (`projectID`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

projectuser Table

CREATE TABLE tmproject.`projectuser` (
  `projectID` bigint unsigned NOT NULL,
  `userID` bigint unsigned NOT NULL,
  `userpoints` int DEFAULT NULL,
  PRIMARY KEY (`projectID`,`userID`),
  FOREIGN KEY (`projectID`) REFERENCES `projects` (`projectID`),
  FOREIGN KEY (`userID`) REFERENCES `useraccount` (`userID`)
);

example test-data

INSERT INTO tmproject.projects (name, deadline) VALUES ('Project1', '2022-12-31');
INSERT INTO tmproject.projects (name, deadline) VALUES ('Project2', '2022-12-31');

INSERT INTO tmproject.useraccount (name, totalpoints) VALUES ('Tom', 0); 
INSERT INTO tmproject.useraccount (name, totalpoints) VALUES ('Pia', 0);

INSERT INTO tmproject.projectuser (projectID, userID, userpoints) VALUES (1,1,3);
INSERT INTO tmproject.projectuser (projectID, userID, userpoints) VALUES (1,2,5);

INSERT INTO tmproject.tasks (name, deadline, timeestimation, prio, done, maxpoints, responsibleuserid, projectid) VALUES ('hallo', '2022-12-31', 1.0, 7, false, 6, 1, 1);
INSERT INTO tmproject.tasks (name, deadline, timeestimation, prio, done, maxpoints, responsibleuserid, projectid) VALUES ('Task2', '2022-12-31', 1.5, 9, false, 9, 2, 2);

About

Project-Management WebApp (3rd sem project)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published