Skip to content

Latest commit

 

History

History
109 lines (84 loc) · 3.05 KB

README.md

File metadata and controls

109 lines (84 loc) · 3.05 KB

Courses management application, with subjects, students, grades and registrations support

Requires PHP 7.x, MySQL 5.4.x

v0.1.1
08/04/2019
(c)Juan Luis Ramírez Tutor
Email: [email protected]
GitHub: https://github.com/jlrtutor
LinkedIn: https://es.linkedin.com/in/juan-luis-ramirez-tutor
Languages supported: english|spanish

Feel free to use this application to manage a small school, institute, academy or similar, where you have to control the student's registration, grades, etc...

Please, report any issue you may have using this application.

#Installation

  1. Create an empty database
    | name: university
    | user: root
    | password: [empty]
  1. Change config database, if required, at file /app/config.php

  2. Upload and execute "database.sql" onto your database.

  3. The application is prepared to run into a folder called "university-app", so the URL would be: http://localhost/university-app

  4. If the application is installed into another folder, change the path on the following file /app/config.php, line 2

define( 'BASE_URL', '/university-app/');  //WEB directory, external path url
  1. Locale (spanish default), choose english (en-EN) or spanish language (es-ES) by changing /app/config, line 10:
define( 'LANG', 'es-ES');   //es-ES|en-EN
  1. Make
composer install

to download and install all packages and dependencies.

  1. LOGIN. Enter URL base. You must authenticate before you use this application:
    | user: [email protected]
    | password: admin

##Technical notes

The framework used in this project was created from scratch, thinking on an easy and fast development.

It implements a system based on a data model, where you define basically all the fields that the model needs and its relationships with other tables or entities. So, the system can validate data automatically, for example:

$this->field('id',         'integer', ['PK'=>true, 'validate'=>false] );
$this->field('student_id', 'integer', ['FK'=>true]); //FK of Student table
$this->field('course_id',  'integer', ['FK'=>true]); //FK of Course table
$this->field('level',      'integer');
$this->field('date_of_creation','date', [ 'validate'=>false,
                                          'required'=>false, 
                                          'default'=>date('Y-m-d') ] );

Here you can see the entity registrations and its fields and relationships with other tables, like Student and Course.

These relationships make it easier to obtain information from foreign tables:

//Load object Registration
$obj_registration = new Registration($id);
//Binding with Students table
echo "The name of the students is: " . $obj_registration->getStudent()->name;
echo "And he courses " . $obj_registration->getCourse()->name;

App structure


/app
    /Http
        /Controllers
        /Models
    /public
        /views
            //...
/vendor