Skip to content

Latest commit

 

History

History
51 lines (38 loc) · 2.71 KB

File metadata and controls

51 lines (38 loc) · 2.71 KB

Data Structures Course Project: Simple Task Manager

Overview

This project aims to blend theoretical knowledge of data structures with practical software development skills by creating a task management system akin to Jira. Students are tasked with designing and implementing their own data structures to handle different aspects of task management efficiently.

Features

  • User Management: Functions such as register, login, and manage user profiles.
  • Task Management: Includes capabilities to create, update, delete, and search for tasks.
  • Project Boards: Organize tasks within customizable projects and boards.
  • Role-based Access Control: Implement different permissions based on user roles such as Admin, Manager, and User.

Data Structures

Students are required to implement the following data structures from scratch and integrate them into their application:

  • Stack: Used for managing undo operations in task edits.
  • Queue: Handle notifications and task processing queues.
  • Linked List: Maintain dynamic lists of tasks and projects.
  • Binary Tree: Enhance the efficiency of search operations.
  • Hash Table: Used for fast mapping of user IDs to user details and task IDs to tasks.

Technical Requirements

  • Backend: Students may choose any programming language (e.g., Python, Java, Node.js).
  • Frontend: A graphical user interface (GUI) must be developed. Frameworks like React, Angular, or even simpler ones like Tkinter for Python can be used.
  • Database: Students are free to choose any relational or NoSQL database (e.g., MySQL, PostgreSQL, MongoDB, Firebase).

Getting Started

Prerequisites

  • Install the chosen programming language and setup the selected database on your local machine.

Installation

  1. Create an organization for your team in github.

  2. Create a repository in your organization and add at least one TAs to your repository.

  3. Start your project implemention and commit each changes in git. HINT: Your commits will be checked and has a part of your score.

Project Structure

  • src/: Contains all source files for backend and frontend implementations.
  • db/: Database scripts, schemas, and connection configurations.
  • docs/: Additional documentation and detailed project specifications.
  • tests/: Test scripts for unit and integration testing.

Evaluation Criteria

  • Effective implementation and use of the specified data with the database, programming language, and GUI choices.
  • Functionality and usability of the GUI in task and user management.
  • Code quality, documentation, and error handling.

Appendix

  • Additional instructions on data structure applications and GUI development best practices will be provided in supplementary documents.