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.
- 🔐 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
- JavaScript - Core programming language
- HTML5 - Markup structure
- CSS3 - Styling and animations
- Java 22+ - Backend programming language
- Spring Boot 3.0+ - Application framework
- Spring Security - Authentication and authorization
- Spring WebSocket - Real-time communication
- MySQL 8.0+ - Relational database
- Hibernate/JPA - ORM framework
- REST API - Backend communication protocol
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
git clone https://github.com/FelixCodex/ProductyFlow.git
cd ProductyFlowCreate a MySQL database:
CREATE DATABASE productyflow;
USE DATABASE productyflow;Then copy and paste the schema in the file SQL Schema
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=8080Using Maven:
mvn spring-boot:runUsing Gradle:
gradle bootRunThe application will start at http://localhost:8080
- Register a new account at
/auth - Create your first project from the dashboard
- Invite team members to collaborate
- Add tasks and nodes to organize your work
- Track progress using the calendar view
# 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"
}📦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
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


