ProjSync

Advanced Project Management Application

ProjSync is a comprehensive project management solution designed to help teams efficiently organize, track, and coordinate various tasks, resources, and activities within their projects. It provides a user-friendly interface for managing project-related data and visualizing progress.

ProjSync Logo

Overview

ProjSync was developed as part of a Software Engineering course project in 2023/2024. The application aims to provide an efficient tool for project management, enabling users to organize, monitor, and coordinate different tasks, resources, and activities within their projects.

With its intuitive interface and robust functionality, ProjSync streamlines project workflows, facilitates team collaboration, and provides valuable insights through various visualization methods. The application is designed to serve the needs of project managers, team leaders, and team members by providing role-specific access and functionalities.

Key Features

User and Role Management

Comprehensive system for managing user accounts and assigning specific roles with appropriate access levels and permissions, ensuring secure and organized project participation.

Project Creation and Management

Tools to create, edit, and organize projects with detailed information, timelines, milestones, and resource allocation, providing a centralized hub for all project-related data.

Activity Management

Functionality to track and manage project activities, including task assignment, progress monitoring, deadline management, and completion status, ensuring all team members stay coordinated and informed.

Visualizations

Multiple visualization methods for project activities and progress, making it easier to understand complex project data, identify bottlenecks, and make informed decisions about resource allocation and timelines.

Data Filtering

Advanced filtering capabilities that allow users to narrow down project information based on various criteria, helping them find relevant data quickly and efficiently, even in large and complex projects.

Team Collaboration

Tools designed to enhance team cooperation, including shared task boards, activity feeds, and notification systems, fostering better communication and coordination among project team members.

Architecture

ProjSync follows a modern web application architecture with clear separation of concerns:

  • Frontend: A responsive and interactive user interface built with Angular, following component-based architecture principles for maintainability and reusability.
  • Backend: A robust API service developed using the .NET framework, handling business logic, data processing, authentication, and database interactions.
  • Database: Data persistence layer using SQLite, providing reliable storage for project information, user data, and activity records.

The application employs a client-server model where the Angular frontend communicates with the .NET backend via RESTful API endpoints, ensuring efficient data exchange and separation of concerns.

Technology Stack

Angular 17

Frontend framework for building responsive and interactive user interfaces

TypeScript

Programming language for frontend development, adding static typing to JavaScript

HTML/CSS

Standard web technologies for structure and styling of user interfaces

.NET 8

Framework for building server-side applications and APIs

C#

Programming language for backend development

SQLite

Lightweight, file-based database system for data storage

Entity Framework Core

ORM framework for database interactions from .NET applications

RESTful APIs

Communication protocol between frontend and backend components

Git

Version control system for code management and team collaboration

Project Workflow

  1. User Authentication: Users log in with their credentials to access the system with their assigned role permissions.
  2. Project Creation: Project managers can create new projects, defining parameters, timelines, and team members.
  3. Task Management: Create, assign, and schedule tasks to team members with deadlines and priority levels.
  4. Progress Tracking: Monitor task completion, track project milestones, and visualize progress using different views.
  5. Reporting: Generate reports based on project data to provide insights into project health, resource utilization, and timeline adherence.

Setup and Installation

Requirements

  • Node.js (v20.11.1 or higher)
  • Angular CLI (v17.2.1 or higher)
  • .NET SDK (v8.0.200 or higher)

Local Development Setup

# Clone the repository
git clone http://gitlab.pmf.kg.ac.rs/si2024/syncatech.git

# Start frontend
cd src/front/angular
npm install
ng serve --open

# Start backend
cd src/back/backAPI/backAPI
dotnet run

Development Team

Radovan Drašković

Team Leader

GitHub: @Drashko73

LinkedIn

Mihajlo Nikolić

Team Member

GitHub: @nmihajlon

LinkedIn: To be added

Vladimir Geroski

Team Member

GitHub: @VGeroski

LinkedIn: To be added

Luka Gvozdenović

Team Member

GitHub: To be added

LinkedIn: To be added

Interested in ProjSync?

Check out the live demo to explore the application's features and functionality, or visit the GitHub repository to see the source code.