Skip to content

A web application that provides protein-phenotype information through several reports from a personally engineered MySQL database

License

Notifications You must be signed in to change notification settings

prakashdontaraju/mysql-webapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 

Repository files navigation

Web App To Quickly Know Proteins Associated With Diseases

Business Case

The scientists in our company (customers) require a web application to view protein, gene and disease information as well as generate customized reports.

This information is otherwise retrieved manually from multiple resources specified below.

Focus

prod_p2p is a web application that provides this information and allows to generate customized reports. I developed this web application by engineering a MySQL database from the below data sources and utilizing PHP, HTML & CSS.

Data Sources

I selected a few diseases and utilized the associated protein and gene data. All data belongs to these entities.

Process

  • Noted business requirements in detail (iterative process)

  • Collected data from the 4 data sources

  • Performed Data Modeling

    • Conceptual Data Model
    • Logical Data Model
    • Physical Data Models
  • Applied Data Normalization

    • First Normal Form
    • Second Normal Form
    • Third Normal Form
  • Engineered a MySQL Database

    • Transformed & Loaded Data (local .csv to MySQL database)
    • Validated foreign keys among tables & created SQL Views
    • Built custom Functions & Stored Procedures to include in reports
  • Optimized MySQL Performance

    • Database structure
    • SQL statements
  • Developed the Website

    • PHP
    • HTML & CSS

Home Page

Entity-Relationship Diagram

Implementation

Tools

Browser       Chrome or any other
Servers       Web server, database server, PHP server
XAMPP         5.6.32/PHP 5.6.32 or newer
MySQL         MySQL Workbench
Text Editor   VS Code or any other

Deployment

Instructions to successfully deploy my web application:

  • Run Apache server and MySQL server on XAMPP
  • Unzip webapp_p2p.zip contents into htdocs sub-folder within the installed xampp folder
  • Launch MySQL Workbench and create a DBA user by running the following code in MySQL Workbench:
-- username: DBAuser & password: Xampp64097
CREATE USER 'DBAuser'@'localhost' IDENTIFIED BY 'Xampp640697';

-- to use custom username & password: change content in DbConnection.php file using a text editor

-- grant database administrator privileges to the created DBAuser
GRANT ALL PRIVILEGES ON * . * TO 'DBAuser'@'localhost';
  • Open the script prod_p2p_bk from the contents of the unzipped folder
  • Run the script on MySQL Workbench to import the prod_p2p database
  • The restored prod_p2p database has views, functions and stored procedures required to generate reports from the web application
  • To check if the database is properly connected open: http://localhost/webapp_p2p/DbConnection.php
  • A successful deployment of the database shows a blank screen as below:

  • If you do not see a blank screen:

    • Open the DbConnection.php file from the contents of the unzipped folder
    • Verify if details such as username & password are correct
  • If you see a blank screen:

Reports

Report 1: Gene Details

Report 2: Protein Synonym Information

Reports 3 to 6: Protein, Disease & Database data reports

App Documentation

I included further details about data set, deployment & usage instructions, practical applications and future work here.

Connect With Me

Prakash Dontaraju LinkedIn Twitter Medium