FusionHub is a modern project and portfolio management application designed for students and administrators. It combines powerful tools for managing projects, teams, and personal portfolios, along with robust user management capabilities for administrators.
- 
Discover and Search Projects
- Browse and filter projects using various criteria to find relevant ones quickly.
 
 - 
Create and Manage Projects
- Start a new project and invite team members via email.
 - Assign roles and manage team collaborations.
 
 - 
Kanban-Style Task Management
- Create, assign, and track tasks for each project.
 - Tasks can be moved across different statuses: To-Do, Pending, and Done.
 - Add comments and updates to tasks to streamline communication.
 
 - 
Real-Time Chat
- Collaborate effectively with team members using integrated real-time chat functionality.
 
 - 
Project Progress Tracking
- Monitor the overall progress of each project using detailed metrics and visualizations.
 
 - 
Issue Management
- Create and assign issues to team members.
 - Track the progress of issues and add comments to facilitate resolution.
 
 - 
Portfolio Creation
- Build a personalized portfolio with:
- Customizable themes.
 - Sections for experience, education, social links, and an "About Me" page.
 - Toggle visibility of specific projects.
 
 - Shareable portfolio link for showcasing achievements.
 
 - Build a personalized portfolio with:
 - 
Profile Management
- Create and update user profiles, including personal details and preferences.
 - Reset forgotten passwords using the Forgot Password feature.
 
 - 
Authentication and Security
- Secure login with JWT-based authentication and Spring Security.
 - OAuth 2.0 login via Google for seamless access.
 
 
- 
User Management
- View a list of users with their names, email addresses, and login sources (FusionHub or Google).
 
 - 
User Status Management
- Admin can approve or reject user registrations:
- FusionHub Signup: User status is set to "Pending" and requires admin approval.
 - Google Signup: Automatically approved, but the admin can later change the status.
 
 
 - Admin can approve or reject user registrations:
 - 
Comprehensive Control Panel
- Easily manage users, projects, and portfolios from a centralized dashboard.
 
 
- Spring Boot for building robust REST APIs.
 - JWT and Spring Security for authentication and authorization.
 - MySQL as the database for storing user, project, and portfolio data.
 
- React.js for creating a dynamic and responsive user interface.
 
- WebSocket for enabling real-time chat and updates.
 
- Google OAuth 2.0 for secure and streamlined login functionality.
 
- GitHub Actions for continuous integration and automated submodule updates.
 
- Project Management: Students can create and manage projects, assign tasks, and track progress with ease.
 - Portfolio Creation: Build stunning portfolios to showcase skills and achievements.
 - Collaboration: Use real-time chat and task management to stay connected with team members.
 
- User Control: Monitor user activities and approve or reject user registrations.
 - Security: Ensure safe and controlled access to the platform.
 
This document explains how to set up and run the FusionHub project locally or in a production environment. Follow the steps below to get started.
FusionHub/
├── Backend/
│   ├── AdminService/
│   ├── StudentService/
│   ├── EurekaServer/
│   └── APIGateway/
├── Frontend/
└── README.md
Each service is self-contained and can be developed/tested independently.
Ensure the following tools are installed on your system:
- Java Development Kit (JDK) (version 11 or later)
 - Node.js and npm (for the frontend)
 - Maven (for backend services)
 - Git (for cloning the repository and managing submodules)
 - A database (e.g., MySQL) configured for backend services.
 
Clone the main repository along with its submodules:
git clone --recursive https://github.com/manishraj27/FusionHub.git
cd FusionHubIf you cloned without the --recursive flag, initialize and update the submodules manually:
git submodule init
git submodule update
Each service requires environment variables for configuration in application.properties.
Navigate to the Frontend directory:
cd Frontend
Install dependencies:
npm install
Start the development server:
npm run dev
- APIGateway
 - EurekaServer
 - StudentService
 - AdminService