Skip to content

Mosshato/TaskManagementSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Management System

An introductory Spring Boot project built to learn RESTful API development and CRUD operations with a relational database. It models a company hierarchy — Boss → Manager → Employee — where bosses create tasks and assign them down the chain.

Features

  • Role-based signup: Boss (creates a company), Manager / Employee (join via company code)
  • Session-based login/logout
  • Task creation, assignment, and deletion
  • View tasks by role (boss, manager, employee)
  • Manual user creation by a boss

Tech Stack

  • Java 17 + Spring Boot 3.4.1
  • Oracle Database (JDBC, raw DAO layer — no ORM)
  • Vanilla JS + HTML/CSS (static frontend)
  • Maven

Project Structure

src/main/
├── java/com/example/TaskManagementSystem/
│   ├── Controllers/UserController.java   # All REST endpoints
│   ├── Dao/                              # Raw JDBC data access
│   │   ├── UserDao.java
│   │   ├── TaskDao.java
│   │   └── CompanyDao.java
│   ├── Models/                           # User, Task, Company, Role, forms
│   ├── DTOs/UserDTO.java
│   └── DBConnection.java
└── resources/
    ├── application.properties
    └── static/                           # Frontend pages (HTML/CSS/JS)
        ├── index.html
        ├── login.html
        ├── signup.html
        ├── select_role.html
        └── dashboard.html

API Endpoints (/api)

Method Path Description
POST /signup Register a new user (boss creates company, others join via code)
POST /login Login, stores user in session
POST /logout Invalidate session
GET /loggedInUser Get current session user
GET /currentUser?email= Get user details + company info
GET /managers?email= Get all managers under a boss
GET /employees?email= Get all employees under a boss
POST /manual/create/user Boss creates a user manually
POST /add/tasks Create and assign a task
GET /tasks?managerId= Get tasks by manager
GET /boss/tasks?email= Get tasks created by a boss
GET /managers/tasks?managerId= Get tasks assigned to a manager
GET /employees/tasks?employeeId= Get tasks assigned to an employee
GET /employeeTasks?email= Get tasks for employee by email
DELETE /tasks/{taskId} Remove a task

Setup

Prerequisites: Java 17, Maven, Oracle Database

  1. Clone the repo
  2. Create an Oracle DB instance and update application.properties:
    spring.datasource.url=jdbc:oracle:thin:@localhost:1521:TaskManagement
    spring.datasource.username=YOUR_USER
    spring.datasource.password=YOUR_PASSWORD
  3. Run:
    ./mvnw spring-boot:run
  4. Open http://localhost:8080 in your browser

About

Introductory task management system built with Java and Spring Boot that showcases CRUD operations and RESTful API design for backend development.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors