"Steps to prepare the source code to build/run properly & Steps to create and initialize the database"
- Install latest version of XAMPP with PHP 5.4.0 or higher.
- Download the composer from getcomposer.org
- When you install the composer, you will have to choose the "php.exe" file.
- To check the composer installation, type the below code in command prompt "composer -V"
- After this, run composer global require
fxp/composer-asset-plugin:1.1.4
- If point 5 is giving any error, please add "--no-plugins" in the end i.e. composer global require
fxp/composer-asset-plugin:1.1.4 --no-plugins
- Extract the source code in server root directory.
- Open command promt inside Source folder where composer.json file exists and run "composer update" without doubt quotes. This point might take sometime depending on internet connection since it downloads the complete Yii2 framework and extensions required with in the project.
- After you install the application, run command "init" (windows) or "php init" (for linux) to initialize the application with a specific environment. Select "development" environment.
- Create two new databases named as "pathology" & "pathology_tests" and adjust the components['db'] configuration in Source/common/config/main.php & Source/tests/codeception/config/config-local.php respectively.
- Run DB scripts which are available in Source/DB folder for both the databases.
- Delete components['db] & components['mailer] from main-local.php else there will be conflicts.
- Open command prompt inside Source/tests/codeception/frontend and run "php codecept.phar build"
- After this, run "php codecept.phar run"
- Follow point number 11 & 12 for Source/tests/codeception/common.
- Go to browser URL and type following for admin URL: /Source/backend/web/
- Use following credentials, email: admin@pathologylabs.com & password: admin123
- Setup type of tests and view the list of users.
- Change URL to: /Source/
- Following the dummy users to test the system:
Operator
email: operator@pathologylabs.com
password: password
Patient
name: Patient
email: patient@pathologylabs.com
passcode: PL123
Please note: Dummy data in the system doesn't belong to any real data and it is being used for testing purpose only.
"Any assumptions made and missing requirements that are not covered in the specifications":
- Type of medical tests are not limited, hence created admin panel to generate any number of types of test.
- There was no way to track the number of operators and patients using our system. Hence provided this information in the admin panel.
- Sending SMS required third party API to integrate with our system. Hence required details for integration. To make it work, I am sending the passcode to the patient's registered email address.
- I have created a demo account in Zoho Mails for sending real emails.
- Operators can see the list of patients s/he has created, but can generate reports for any registered patients in the system.