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 FusionHub
If 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