Skip to content

A final year university project. Flexible To-Do website.

Notifications You must be signed in to change notification settings

dawid3201/PlanMe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PlanMe

This is a final year university project. Some features are still worked on.
Link to the video on YouTube: https://youtu.be/kugDbRqt2J4

Description

Greetings and welcome to my project! I am pleased to introduce a Todo List Application developed using Java and the Spring Boot 3 framework. This application is designed to provide users with a seamless experience in efficiently managing tasks. Users can work in coperation on a different projects. Features include: add, delete, update tasks and new cards. Users can be assigned to tasks and each user can see to how many tasks they are assigned to.
There is a task search by name, if there are many tasks it can be helpful to find a specific one.
Each task can be commented. Comments can include text and images.

Users passwords are protected with BCrypt algorithm.

image

How to Use

Prerequisites

  • Java 20 or at least Java 11 installed on your device
  • MySQL installed on your device
  • A modern web browser

Dependencies used

  • Spring Framework
  • Spring Boot DevTools
  • MySQL Connector/J
  • Thymeleaf
  • Spring Security
  • Spring Websockets and related dependencies
  • Lombok

Installation

  1. Download zip file of the master branch

Running the Application

  1. Import the project into your preferred IDE (IntelliJ, Eclipse, etc.)
  2. My program uses MySQL database to store info, the exact copy of my database is included below. It will be neccessary to run the app.
  3. Locate and run the main application class.
  4. Access website through: http://localhost:8080/login

Funcionality

Users can:

  1. Register and Login

image image

  1. Add description to each task

image

  1. Assign users to tasks

image

  1. Move tasks and bars

image image

  1. Prioritise tasks based on the number assign

image

  1. Update names

image

  1. Search tasks by name

image

  1. See all tasks assigned to me

image

Tools and languages used

  1. Java 20
  2. JavaScript - jQuery
  3. JUnit 5
  4. Postman
  5. HTML & CSS
  6. Sprint Boot 3
  7. JDBC
  8. Hibernate
  9. Thymeleaf
  10. MySQL - Workbench 8.0
  11. WebSocket

Database

CREATE TABLE Users ( first_name varchar(45) DEFAULT NULL, last_name varchar(45) DEFAULT NULL, email_address varchar(100) PRIMARY KEY, password varchar(68) default NULL );

CREATE TABLE Homepages ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id VARCHAR(100), data TEXT, FOREIGN KEY (user_id) REFERENCES users(email_address) );

create table Projects( id BIGINT AUTO_INCREMENT PRIMARY KEY, name varchar(25) NOT NULL, deadline DATE, creator_id VARCHAR(100), FOREIGN KEY (creator_id) REFERENCES users(email_address) );

CREATE TABLE Project_members ( project_id BIGINT, user_id VARCHAR(100), PRIMARY KEY (project_id, user_id), FOREIGN KEY (project_id) REFERENCES projects(id), FOREIGN KEY (user_id) REFERENCES users(email_address) );

CREATE TABLE Bars ( id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(70) NOT NULL, position BIGINT, project_id BIGINT, FOREIGN KEY (project_id) REFERENCES Projects(id) );

CREATE TABLE Tasks( id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, state VARCHAR(255), project_id BIGINT, bar_id BIGINT, FOREIGN KEY (bar_id) REFERENCES Bars(id), FOREIGN KEY (project_id) REFERENCES projects(id), priority INT, position BIGINT, description varchar(10000), assigned_user_email VARCHAR(100), FOREIGN KEY (assigned_user_email) REFERENCES users(email_address) );

About

A final year university project. Flexible To-Do website.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published