Skip to content

A platform that improves collaboration among engineers in the project process in a more professional and easier way

Notifications You must be signed in to change notification settings

MhdTarhini/ProjectHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



A platform that improves collaboration among engineers in the project process in a more professional and easier way, base on a version control system to handle files and track changes, direct engaging manager with project process, real-time communication between engineers by chat rooms or issues posts, tasks management (Gantt chart) and several other features.

Communication between engineer can increase the work functionality and troubleshooting.

With my project features engineers can create their own virtual world and collaborate. The platform empowers users with advanced version control, allowing them to identify conflicts between their files and the primary versions. They can review all changes and potential conflicts, deciding whether to accept or reject them. This ensures users always have control over their content. The ability to share issues and communicate about them is vital. However, the most important feature is managing their tasks using a Gantt Chart that provides the best management practices

I'm looking to incorporate AI more extensively by analyzing plan details and suggesting solutions to any problem based on historical data. Additionally, I aim to assist engineers by structuring and designing buildings, focusing on the concrete and steel aspects, as well as in an architectural manner.

User Stories

  • As a user, I want to upload my files so that I can share them with team members.
  • As a user, I want to create a new branch so that I can post my files separately.
  • As a user, I want check files details so that I can have knowladge.
  • As a user, I want to create a new branch so that I can post unapproved update files without modifying the original.
  • As a user, I want to create a new copy of the main file so that I can make changes in it.
  • As a user, I want to view my old updates so that I can reuse them.
  • As a user, I want to schedule my tasks by priority so that I can manage my workload effectively.
  • As a user, I want to tag specific members related to my issue so that I can communicate directly.

Manager Stories

  • As a manager, I want to see all project titles so that I can stay organized.
  • As a manager, I want to approve files from members so that I can ensure quality and organization.
  • As a manager, I want to create new teams so that I can enhance work quality.
  • As a manager, I want to change project statuses so that I can manage my projects effectively.



Mockups

Login screen Dashboard Section Issues Section
Landing fsdaf fsdaf



ProjectHub is built using the following technologies:

  • This project uses the Electron framework. Electron embeds Chromium and Node.js to enable web developers to create desktop applications.
  • For persistent storage (database), the app uses MySQL package which allows the app to create a custom storage schema and save it to a local database.
  • On paralllel with Electron I Used Python where is a programming language that lets you work more quickly and integrate your systems more effectively.
  • As a Frontend React that declarative, efficient, and flexible JavaScript library for building user interfaces or UI components.
  • For handling database records I used Laraverl that include Eloquent where is an object relational mapper (ORM).
  • Firbase To Enable Google Auth & Create rooms for real-time messaging between Teams member .
  • OpenAI to read the plan details and content, and provide the area and dimensions of each object.
  • aws Hosting the server side Laraverl on IP Address: 34.244.172.132



Using the wireframes and mockups as a guide, we implemented the ProjectHub app with the following features:

User Screens (Desktop)

Tasks Section Loading Screen Files Section
Landing fsdaf fsdaf

Admin Screens (Desktop)

Dshbored Section Project Section Team Members screen
Landing fsdaf fsdaf

fsdaf

POST http://34.244.172.132/api/file-section/open_ai

data : {'Slab': [{'prop': {'L,W': (55.4, 68.3), 'Area': 2457.283}, 'quantity': 1}], 'opening': [{'prop': {'L,W': (3.0, 4.9), 'Area': 14.7}, 'quantity': 1}, {'prop': {'L,W': (4.6, 2.2), 'Area': 10.12}, 'quantity': 1}, {'prop': {'L,W': (2.8, 2.8), 'Area': 7.84}, 'quantity': 1}], 'Columns': [{'prop': {'L,W': (0.6, 0.2), 'Area': 
0.12}, 'quantity': 69}, {'prop': {'L,W': (0.2, 0.6), 'Area': 0.12}, 'quantity': 2}], 'shear wall': [{'prop': {'L,W': (3.2, 5.1), 'Area': 16.32}, 'quantity': 1}, {'prop': {'L,W': (3.0, 5.0), 'Area': 7.5}, 'quantity': 1}, {'prop': {'L,W': (2.8, 5.5), 'Area': 7.7}, 'quantity': 1}, {'prop': {'L,W': (4.8, 3.5), 'Area': 14.16}, 'quantity': 1}, {'prop': {'L,W': (7.0, 1.6), 'Area': 11.2}, 'quantity': 1}, {'prop': {'L,W': (7.0, 4.2), 'Area': 7.0}, 'quantity': 1}]}

Response :

This File Containe Slab with 55.4 m*68.3m Area: 2457.283 m2, Opening with L,W: 3.0 m, 4.9 m Area: 14.7 m2, L,W: 4.6 m, 2.2 m Area: 10.12 m2,L,W: 2.8 m, 2.8 m Area: 7.84 m2, Columns with L,W: 0.6 m, 0.2 m Area: 0.12 m2 Quantity: 69, L,W: 0.2 m, 0.6 m Area: 0.12 m2 Quantity: 2, Shear wall L,W: 3.2 m, 5.1 m Area: 16.32 m2 Quantity: 1 L,W: 3.0 m, 5.0 m Area: 7.5 m2 Quantity: 1 L,W: 2.8 m, 5.5 m Area: 7.7 m2 Quantity: 1 L,W: 4.8 m, 3.5 m Area: 14.16 m2 Quantity: 1 L,W: 7.0 m, 1.6 m Area: 11.2 m2 Quantity: 1 L,W: 7.0 m, 4.2 m Area: 7.0 m2 Quantity: 1



The following tests were conducted in Postman to assess the functionality of my application's primary APIs.

URL : http://34.244.172.132/api/file-section/get_files

PASS The data length must be greater than zero 
PASS Response time is within acceptable range //497 ms

URL : http://34.244.172.132/api/file-section/main_commit

PASS Response time is within acceptable range //353 ms
PASS Response status code is 200
PASS Response has the required fields



To set up ProjectHub locally, follow these steps:

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • npm
    npm install npm@latest -g

Installation

Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn't rely on any external dependencies or services.

  1. Clone the repo
    git clone https://github.com/MhdTarhini/ProjectHub.git
  2. Install NPM packages
    npm install
  3. Enter eletron file
    cd electron
  4. Activate Python Env.
    .\venv\Scripts\activate
  5. Run React
    npm run react:start
  6. After run react successfuly, Run Electron
    npm run electron:start

Postman Collection

ProjectHub API's

Demo Accounts

  • email: [email protected], password: 1234567, and role: Manager of 2 projects (Hospital, Building) only Hospital project is Active.
  • email: [email protected], password: 1234567, and role: member in Architect Team in hospital project.
  • email: [email protected], password: 1234567, and role: member in Site Team at hospital project.
  • email: [email protected], password:1234567, and role: member in Office Team at building project (pending project)

Now, you should be able to run ProjectHub locally and explore its features.

About

A platform that improves collaboration among engineers in the project process in a more professional and easier way

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published