/Skills_Matrix-Database-GUI

Database and Website Gui for Company Users Skills Visualization and editing in user friendly way.

Primary LanguagePython

Skills Matrix WebApp

Database and Website Gui for Company Users Skills Visualization and Editing in user friendly way.


Table of contents

Introduction

  • This project is a web application that allows users to view and edit the skills of the company's employees in a user-friendly way.
  • The application is based on a database that contains all the information about the employees and their skills.
  • Each user can view his skills and edit on them
  • Only the Admin has The Privilege to view and edit all the employees data

Project Structure

  • The project is divided into two parts:
    • Backend & Database - The backend is responsible for the database and the server.
    • Frontend - The frontend is responsible for the website and the user interface.

Database

  • The database is based on MySQL.

  • The database contains 2 tables:

    • Employees - Contains all the users in the company.
    • Skills - Contains the Skills for each user in the company.

ER Diagram

ER Diagram

ER

Employees Table

Employee table

Skills Table

Skills Table

Frontend

  • The frontend is based on Python Streamlit.

  • The frontend contains 3 pages:

    • Login Page - The login page is the first page that the user sees when he enters the website. The user must enter his username and password in order to enter the website. Login Page

    • Skills Page - The skills page is the main page of the website. The user can view his skills and edit them. User Page

    • Admin Page - The admin page is a page that only the admin can enter. The admin can view and edit all the employees data. Admin Page

Skills Matrix WebApp
├─  src
│  ├─ mainPage.py
│  ├─ pages_handler.py
│  ├─ utils.py
│  ├─  database
│     ├─  database_connection.py
│     ├─  database_init.py
│     ├─  fill_tables.py
│     └─  database_queries.py
README.md

Developer Guide

Prerequisites

  • Python 3.8 or higher
  • MySQL server
  • MySQL Workbench or PhpMyadmin
  • Streamlit library
  • PyMySQL library
  • Pandas library

DataBase Creation :

  • Using phpmyadmin as described in the Database_Developer_Guide_File
  • Or with using MySql Connector Librarry by running these to files :
    • database_init.py - Create the database and the tables
    • fill_tables.py - Insert the data to the database tables

Run the WebApp

 cd .\src\
 pip install streamlit
 streamlit run mainPage.py

User Guide

  • The user must enter his username and password in order to enter the website. Login Page

  • The user can view his skills and edit them by adding new Skill in selected category or by adding new Category of Skills. User Page

  • The admin can view and edit all the employees data.

    • He Can view and Edit His Own Page Admin Page

    • By Selecting All User From The Dashboard he can :

      • Display All users Data Screenshot (686)

      • Add New User Screenshot (687)

      • Edit Specific User Data Screenshot (689)

    • By Selecting User Skills From The Dashboard he can Display any Selected user ID Skills Matrix and Edit on it : Screenshot (690)

Technologies

  • Python 3.8
  • MySQL
  • MySQL Workbench
  • PhpMyadmin
  • Streamlit
  • PyMySQL
  • Pandas