IDS Academy Website - Abed1414/IDS_Academy GitHub Wiki

ER Diagram

To manage the Interns, Programs, Pages, and Employees which can be instructors or not, with all their multivalued attributes, the following schema was implemented in the project:


Note: The table organize was named LIsts_of_Instructors and the table join was named Lists_of_Interns in the SQL design

Relational Database & SQL Tables

As shown in the Diagram, the Administrators table is a separate table that has its records already exist in the database Employers in the academy can be instructors for any specially opened program, this will be recorded in (organize) Lists_of_Insructors table. The same concept is applied to the (join) Lists_of_Interns and interns table; when an intern is accepted in a specific program and when the program finishes and certificates are out, the (join) Lists_of_Interns table will make the connections clear. Assessment_Exam_Links is a multivalued attribute for the program so it needed it is own table. The same work was applied for the Pages_Body table. All the Entity tables are displayed in the document below with their attributes and the correct primary and foreign keys:

SQL_1 SQL_2 table

Project Sections

The project consists of three sections:

1- Administration section

Administrators who already exist in the database can manage everything about the programs, employees, pages, and interns:

First, the Administrator should log in with his email and password, if the administrator forgets his password authentication can be achieved by SMTP (a code will be sent to the administrator's email and he should submit it with his email)

Then he will be able to access four pages (manage programs, manage employees, manage applicants, and manage pages) each includes two parts: its search bar and its operations. Various operations can be done on each page and the data is visualized in a very simple, clear, and well-designed way. links are implemented when they are needed. All pages includes their own search bar and operations files in different php files. (except the pages management page since operations are handled on different pages). Below is the explanation for each page separately:


The page contains a table of programs with their attributes and three hidden tables per program with a toggle option to view applicants, exam links, and Instructors. The applicants and employees tables don't contain all the attributes of the users, but each of them has a column (View Applicants Page, View Employees Page) that navigates to their pages. The administrator can search for the program by it is ID, title, start date, end date, and instructor's id who is giving it. A wide set of operations can be done: update capacity or Google classroom code or end date or description, add or delete exam link or instructor from/to a specific program, and delete a program.


The page contains a table of applicants with their attributes and a hidden table per each program with a toggle option to view the programs the applicants joined. The hidden programs table displayed is very simple, it contains the program ID, program Title, if the program is in progress (if No, a dropdown will be shown after the administrator clicks to view the applicant's certificate), and view programs page link (it directs toward the program list page and search for the program with the selected ID record). The administrator can search for Interns by their ID, name, university, Starting date, responding email, graduation date, and years of experience. A wide set of operations can be done: update address or validation email graduation date, add or delete intern from/to a specific program, and delete all intern records.


The page contains a table of employees with their attributes and a column that shows if the employer is an instructor or not (if Yes, a dropdown will be shown after the administrator clicks. It contains a link to the program list page and search for the programs where the selected employer is an instructor in). The administrator can search for employees by their ID, name, university, Starting date, responding email, graduation date, and years of experience. One operation can be done which is to delete all employer records, and another button is for an simple employees registration form.


The page contains a table that shows the pages with all their attributes except the body. The page title is a link to the IDS_Academy_Administration_Pages_Management_Pages_Body.php where the selected page body sections will be displayed twice, the first time as what will be displayed in the browser and the second time as a code section (with all tags visible to the administrator). Operations allowed for the administrator are as follows: update the title, body section, and page state (it will become inaccessible). (the administrator should modify the code section of the body, not the part that appears in the browser).

2- Public section

Visible to everyone:

It contains a nav bar with six pages (HomePage, About ID, Meat our team, Contact Us, Internship programs (dropdown for two programs)), each with it is own ID, the nav bar is implemented in a header page (IDS_Academy_HomePage_Header.php) which is included with a header on all pages. The same thing is applied in the Footer content for all pages. The Text in the body of the pages is extracted from the Pages_Body table in the database so that it can be modified in the administration section without accessing the database. The queries to retrieve the data are on separate files included at the top of all the pages, each implementing it with its own ID. (also the title and the page state, that if a page is set to inactive, it will not run).

Interns can view the opened programs' descriptions and click apply where they will be directed to fill out the application form. If the program is full, the application will be unsuccessful (the form page will show an alert), the form will show a success mark in a box otherwise. The applicants who have already joined a program once before will be optioned to apply with the same account by entering the same email and password and clicking a small checkbox in the form.

3- Applicants section

It is designed for applicants who are accepted into a program:

Very Straightforward with one sidebar to view the Home, Exam links, and certificates concerning registered programs, also applicants can view and update their profiles.