Skip to content

FelixCodex/ProductyFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 ProductyFlow – Project, Task, and Node Manager

Java Spring Boot

A simple yet powerful project, task, and node management system designed to boost productivity for individuals and teams through real-time collaboration and intuitive organization.



📋 Table of Contents

✨ Key Features

  • 🔐 JWT Authentication - Secure user authentication and authorization
  • 🔄 Real-time Updates - Live project synchronization via WebSocket rooms
  • 📅 Task Calendar - Comprehensive calendar view for task scheduling and tracking
  • 👥 Project Groups - Organize projects into collaborative groups
  • 🌐 Node Management - Hierarchical node system for complex project structures

🚀 Technologies Used

Frontend

  • JavaScript - Core programming language
  • HTML5 - Markup structure
  • CSS3 - Styling and animations

Backend

📦 Prerequisites

Before you begin, ensure you have the following installed:

  • Java Development Kit (JDK) 17 or higher
  • Maven 3.6+ or Gradle 7.0+
  • MySQL 8.0 or higher
  • Node.js 16+ (for frontend dependencies, if applicable)
  • Git for version control

🔧 Installation

1. Clone the Repository

git clone https://github.com/FelixCodex/ProductyFlow.git
cd ProductyFlow

2. Database Setup

Create a MySQL database:

CREATE DATABASE productyflow;
USE DATABASE productyflow;

Then copy and paste the schema in the file SQL Schema

3. Configure Environment Variables

Edit the file application.properties in src/main/resources/:

# Database Configuration
spring.datasource.url=jdbc:mysql://localhost:3306/productyflow
spring.datasource.username=your_user
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update

# Server Configuration
server.port=8080

4. Run the Application

Using Maven:

mvn spring-boot:run

Using Gradle:

gradle bootRun

The application will start at http://localhost:8080

🎯 Usage

Quick Start

  1. Register a new account at /auth
  2. Create your first project from the dashboard
  3. Invite team members to collaborate
  4. Add tasks and nodes to organize your work
  5. Track progress using the calendar view

API Endpoints Example

# User Registration
POST /auth/register
Content-Type: application/json
{
  "username": "John Doe",
  "password": "securePassword123",
  "email": "user@example.com"
}

# User Login
POST /auth/login
Content-Type: application/json
{
  "username": "user@example.com",
  "password": "securePassword123"
}

📂 Project Structure

📦ProductyFlow
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┣ 📂java/com/example/Main
┃ ┃ ┃ ┣ 📂Config           # Application configuration (Security, WebSocket, CORS)
┃ ┃ ┃ ┣ 📂Controllers      # REST API controllers
┃ ┃ ┃ ┣ 📂Interceptors     # HTTP request interceptors
┃ ┃ ┃ ┣ 📂Jwt              # JWT utilities and filters
┃ ┃ ┃ ┣ 📂Models           # Entity models
┃ ┃ ┃ ┣ 📂Repositories     # Data access layer
┃ ┃ ┃ ┣ 📂Request          # Request DTOs
┃ ┃ ┃ ┣ 📂Responses        # Response DTOs
┃ ┃ ┃ ┗ 📂Services         # Business logic layer
┃ ┃ ┗ 📂resources
┃ ┃   ┣ 📂static           # Static frontend assets
┃ ┃   ┣ 📂templates        # HTML templates
┃ ┃   ┗ 📜application.properties
┃ ┗ 📂test                 # Unit and integration tests
┣ 📜pom.xml                # Maven dependencies
┣ 📜README.md
┗ 📜.gitignore

Common Issues

Database connection error

  • Verify MySQL is running: sudo service mysql status
  • Check database credentials in application.properties
  • Ensure the database exists: SHOW DATABASES;

WebSocket connection fails

  • Verify CORS settings allow your frontend origin
  • Check firewall rules for WebSocket ports

Made with ❤️ by the FelixCodex

About

Task and Node management system | Work organized, now online

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published