Skip to content

SidTirse-13/Flowspace---Full-Stack-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Flowspace

πŸš€ Flowspace - Full Stack Project Management System

A modern, feature-rich project management platform built with React + Spring Boot

React Spring Boot Java PostgreSQL JWT Vite

Features Β· Tech Stack Β· Getting Started Β· API Docs Β· Screenshots Β· Contributing


πŸ“Œ Overview

Flowspace is a comprehensive, production-ready project management application designed for software development teams. It combines real-time collaboration, AI-powered productivity tools, Kanban boards, analytics, and video meetings into one unified platform making it the only tool your team needs to plan, build, and ship software.

Built with a React + Vite frontend and a Java Spring Boot backend, Flowspace delivers a modern, responsive UI with a robust, secure REST API backed by PostgreSQL.

🎯 Goal: Replace scattered tools like Jira, Slack, Zoom, and Notion with a single, integrated workspace for development teams.


✨ Features

πŸ” Authentication & Security

  • JWT-based authentication with role-based access control
  • Three user roles: Admin, Project Manager, and Member
  • Secure password hashing with BCrypt
  • Protected routes - unauthenticated users are redirected to login
  • Admin dashboard for full user management

πŸ“‹ Project Management

  • Create, edit, and delete projects with start/end dates
  • Paginated project listing with search functionality
  • Project ownership and member management
  • Per-project analytics, workload, and velocity tracking
  • Full audit log of all project activity

βœ… Task Management

  • Full CRUD for tasks within projects
  • Task statuses: TODO β†’ IN_PROGRESS β†’ DONE
  • Assign tasks to team members
  • Task dependencies (blocking relationships)
  • File attachments on tasks
  • Comments and threaded discussion per task
  • Subtask breakdown
  • Due date tracking with overdue detection

πŸ—‚ Kanban Board

  • Drag-and-drop task cards across columns
  • Visual TODO / IN_PROGRESS / DONE swimlanes
  • Real-time board updates

πŸ“Š Analytics & Reporting

  • Task completion percentage and pie charts
  • Critical Path analysis - identifies tasks that block project completion
  • Slack analysis - shows how much buffer each task has
  • Gantt timeline - visual project schedule
  • Workload view - per-member task distribution
  • Velocity charts - weekly completed tasks over time with cumulative view
  • Project-level audit logs

πŸ€– AI Tools (Powered by Groq + Llama 3.1)

  • AI Daily Standup Generator - reads your real task data and writes an accurate standup update
  • AI Task Breakdown - describe any feature and get 5–8 actionable subtasks with priorities and time estimates
  • Tone selector: Professional / Casual / Detailed
  • AI Chatbot - floating assistant on every page for PM advice, writing help, and sprint planning
  • Context-aware: knows your username, current page, and your project list

πŸ’¬ Communication

  • Project Chat - real-time messaging per project with @mentions
  • Announcements - pin/unpin important project-wide messages
  • Direct Messages - private 1:1 conversations between users
  • Activity Feed - live audit feed of all your actions across all projects

πŸ“… Meetings

  • Schedule meetings with type (Standup, Planning, Review, Retrospective, 1:1, General)
  • Set attendees, agenda, notes, and action items
  • Link meetings to specific projects
  • Status tracking: Scheduled β†’ In Progress β†’ Completed / Cancelled
  • Video Calls - embedded real-time HD video calling
  • "Time until" countdown for upcoming meetings
  • Copy invite link to share with anyone

πŸ‘₯ Team & Members

  • Add/remove members per project
  • Role assignment: Owner, Project Manager, Member
  • User profiles with task statistics
  • Admin panel for system-wide user management

🎨 UI & Experience

  • Dark/Light theme toggle with persistent preference
  • Fully responsive layout
  • Smooth animations and micro-interactions
  • CSS variable-based theming throughout
  • Time-aware greeting on dashboard ("Good morning, Siddhesh πŸ‘‹")
  • Real-time stats and live data throughout

πŸ›  Tech Stack

Frontend

Technology Version Purpose
React 18 UI framework
Vite 5 Build tool & dev server
React Router DOM 6 Client-side routing
Axios 1.x HTTP client
Recharts 2.x Charts and data visualization
React Hot Toast 2.x Notifications
Groq SDK β€” AI features (Llama 3.1)

Backend

Technology Version Purpose
Java 17 Programming language
Spring Boot 3.x Application framework
Spring Security 6.x Authentication & authorization
Spring Data JPA 3.x Database ORM
PostgreSQL 15 Primary database
JWT (jjwt) 0.12 Token-based auth
Lombok 1.18 Boilerplate reduction
Maven 3.x Build & dependency management

πŸ“ Project Structure

Flowspace---Full-Stack-App/
β”‚
β”œβ”€β”€ flowspace-frontend/                 # React + Vite frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/                        # Axios API modules
β”‚   β”‚   β”‚   β”œβ”€β”€ axiosInstance.js        # JWT interceptor
β”‚   β”‚   β”‚   β”œβ”€β”€ authApi.js
β”‚   β”‚   β”‚   β”œβ”€β”€ projectApi.js
β”‚   β”‚   β”‚   β”œβ”€β”€ taskApi.js
β”‚   β”‚   β”‚   β”œβ”€β”€ socialApi.js
β”‚   β”‚   β”‚   β”œβ”€β”€ memberApi.js
β”‚   β”‚   β”‚   β”œβ”€β”€ notificationApi.js
β”‚   β”‚   β”‚   └── meetingApi.js
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   └── shared/
β”‚   β”‚   β”‚       β”œβ”€β”€ Navbar.jsx
β”‚   β”‚   β”‚       β”œβ”€β”€ AIChatbot.jsx
β”‚   β”‚   β”‚       β”œβ”€β”€ ErrorBoundary.jsx
β”‚   β”‚   β”‚       └── VideoCallModal.jsx
β”‚   β”‚   β”œβ”€β”€ context/
β”‚   β”‚   β”‚   β”œβ”€β”€ AuthContext.jsx         # JWT + role state
β”‚   β”‚   β”‚   └── ThemeContext.jsx        # Dark/light theme
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   β”œβ”€β”€ LandingPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ LoginPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ RegisterPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ DashboardPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ProjectDetailPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ KanbanPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AnalyticsPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ WorkloadPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ VelocityPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ProjectMembersPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ProjectChatPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ DirectMessagesPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ActivityFeedPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AIToolsPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ MeetingPage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ UserProfilePage.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SettingsPage.jsx
β”‚   β”‚   β”‚   └── AdminPage.jsx
β”‚   β”‚   └── App.jsx
β”‚   β”œβ”€β”€ .env                            # API keys (not committed)
β”‚   β”œβ”€β”€ .gitignore
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”‚
└── flowspace-backend/                  # Spring Boot backend
    β”œβ”€β”€ src/main/java/.../
    β”‚   β”œβ”€β”€ controller/                 # REST controllers
    β”‚   β”œβ”€β”€ service/                    # Business logic
    β”‚   β”œβ”€β”€ model/                      # JPA entities
    β”‚   β”œβ”€β”€ dto/                        # Data transfer objects
    β”‚   β”œβ”€β”€ repository/                 # Spring Data repositories
    β”‚   β”œβ”€β”€ security/                   # JWT filter, config
    β”‚   └── exception/                  # Custom exceptions
    β”œβ”€β”€ src/main/resources/
    β”‚   └── application.properties      # DB config, JWT secret
    β”œβ”€β”€ .gitignore
    └── pom.xml

πŸš€ Getting Started

Prerequisites

  • Node.js v18+
  • Java 17+
  • PostgreSQL 15+
  • Maven 3.8+
  • Git

1. Clone the Repository

git clone https://github.com/SidTirse-13/Flowspace---Full-Stack-App.git
cd Flowspace---Full-Stack-App

2. Backend Setup

cd flowspace-backend

Configure the database β€” open src/main/resources/application.properties:

spring.datasource.url=jdbc:postgresql://localhost:5432/flowspace
spring.datasource.username=your_postgres_username
spring.datasource.password=your_postgres_password

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false

jwt.secret=your_super_secret_jwt_key_at_least_32_characters
jwt.expiration=86400000

Create the database:

CREATE DATABASE flowspace;

Run the backend:

mvn spring-boot:run

Backend starts at http://localhost:8080


3. Frontend Setup

cd flowspace-frontend
npm install

Create a .env file in the frontend root:

VITE_API_BASE_URL=http://localhost:8080
VITE_GROQ_API_KEY=your_groq_api_key_here

Get a free Groq API key at console.groq.com β€” required for AI features.

Run the frontend:

npm run dev

Frontend starts at http://localhost:5173


4. Open the App

Navigate to http://localhost:5173 and register your first account.

πŸ’‘ The first user you register can be promoted to ADMIN role directly in the database:

UPDATE users SET role = 'ADMIN' WHERE username = 'your_username';

πŸ“‘ API Documentation

Authentication

Method Endpoint Description
POST /api/auth/register Register new user
POST /api/auth/login Login β†’ returns JWT token
PUT /api/auth/change-password Change password

Projects

Method Endpoint Description
GET /api/projects Get paginated projects
POST /api/projects Create project
PUT /api/projects/{id} Edit project
DELETE /api/projects/{id} Delete project
GET /api/projects/search?query= Search projects
GET /api/projects/{id}/analytics Project analytics
GET /api/projects/{id}/gantt Gantt chart data
GET /api/projects/{id}/critical-path Critical path
GET /api/projects/{id}/workload Team workload

Tasks

Method Endpoint Description
GET /api/projects/{id}/tasks Get all tasks
POST /api/projects/{id}/tasks Create task
PUT /api/projects/{id}/tasks/{taskId} Edit task
DELETE /api/projects/{id}/tasks/{taskId} Delete task
GET /api/tasks/my-tasks My assigned tasks

Meetings

Method Endpoint Description
GET /api/meetings All meetings for user
GET /api/meetings/upcoming Upcoming meetings
POST /api/meetings Schedule meeting
PUT /api/meetings/{id} Update meeting
DELETE /api/meetings/{id} Delete meeting
PATCH /api/meetings/{id}/status Update status

Audit / Activity

Method Endpoint Description
GET /api/audit/me My activity feed
GET /api/audit/project/{id} Project audit log
GET /api/audit/task/{id} Task audit log

All endpoints (except /api/auth/*) require a Bearer JWT token in the Authorization header.


πŸ”‘ Environment Variables

Frontend .env

VITE_API_BASE_URL=http://localhost:8080
VITE_GROQ_API_KEY=               # From console.groq.com (free)

Backend application.properties

spring.datasource.url=           # PostgreSQL connection URL
spring.datasource.username=      # DB username
spring.datasource.password=      # DB password
jwt.secret=                      # Min 32 character secret key
jwt.expiration=86400000          # Token expiry in ms (24 hours)

πŸ‘€ User Roles

Role Permissions
ADMIN Full access β€” manage all users, roles, and projects system-wide
PROJECT_MANAGER Create/manage projects, add members, full task control
USER View assigned projects, manage own tasks, use all features

πŸ€– AI Features Setup

Flowspace uses Groq's free API with Llama 3.1 8B for AI features.

  1. Sign up free at console.groq.com
  2. Create an API key
  3. Add it to your .env as VITE_GROQ_API_KEY

AI features include:

  • Daily standup generation from real task data
  • Feature breakdown into actionable subtasks
  • Floating AI chatbot on every page
  • Sprint planning assistance
  • Meeting announcement drafting

πŸ™Œ Contributing

Contributions are welcome! Here's how to get started:

# Fork the repo, then clone your fork
git clone https://github.com/YOUR_USERNAME/Flowspace---Full-Stack-App.git

# Create a feature branch
git checkout -b feature/your-feature-name

# Make your changes, then commit
git add .
git commit -m "feat: add your feature description"

# Push and open a Pull Request
git push origin feature/your-feature-name

Commit Convention

  • feat: β€” new feature
  • fix: β€” bug fix
  • docs: β€” documentation update
  • refactor: β€” code refactor
  • style: β€” UI/styling changes

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Siddhesh Tirse

GitHub


⭐ If you found this project helpful, please give it a star on GitHub!

Made with ❀️ using React, Spring Boot, and a lot of β˜•

About

Flowspace - A full-stack Project Management Platform built with Spring Boot 4 + React 18 + MySQL. Features Kanban boards, Critical Path analysis, AI standup bot (Groq), real-time team presence, project chat, direct messaging, file attachments, email reminders, and an admin panel. JWT auth with role-based access control.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages