/menteer

Primary LanguagePHPMIT LicenseMIT

menteer

requirements

installation instructions

Steps:

  1. clone the repository
  2. move to server root (if on localhost specify menteer.dev so the index.php defines this as a development install) see index.php for more info
  3. (linux) chmod 777 /application/cache and /application/logs
  4. rename /application/config/config_clean.php to config.php and set the encryption to something unique
    • Search for $config['encryption_key']
  5. modify /application/config/database_clean.php and email_clean.php by removing "_clean" from filename
  6. create a database schema called global_herizons and set it as default
  7. initialize the database
    1. run /sql/setup.sql
  8. configure database.php to point to your database
    • hostname
    • username
    • password
    • database - global_herizons
  9. (linux) chmod 777 /uploads folder and set "php_value upload_max_filesize 20M" & "php_value post_max_size 21M" in your htaccess
  10. ensure php is accessible via PATH
  11. configure php.ini (located in the php folder):
    1. set date.timezone = UTC
    2. set extensions for MySQL:
      1. extension_dir = "C:\php\ext"
      2. extension=php_mysqli.dll

Optional:

  1. default user - > create account and change in user table -> field active to 1 for new user / to make admin see users_groups and insert user with admin group

running

To run:

php -s localhost:8000

features

  • mobile friendly and responsive
  • database driven (extendable)
  • drop and go code-base (minimal setup required)
  • PHP 5.4.9
    • PHP 7+ will not work due to deprecations
  • MySQL 5.1+

technology stack / open source

security

  • XSS (Cross-Site Scripting) Filtering - This filter looks for commonly used techniques to embed malicious JavaScript into your data, or other types of code that attempt to hijack cookies or do other malicious things.
  • SQL Injection Protection
  • CSRF (Cross-Site Request Forgery) Protection - which is the process of an attacker tricking their victim into unknowingly submitting a request. Automatically triggered for every non-GET HTTP request.
  • Input Validation (All GET AND POST data Cleaned and Validated)
  • MySQLi Driver used
  • Encrypted URL used when doing sensitive tasks
  • Forced SSL/HTTPS
  • SMTP (Sendgrid) email ready (out-of-the-box)
  • Cloudflare tested and ready

optional services used

  • sendgrid (email STMP) - for sending email
  • uservoice - for feedback and user tracking
  • google analytics

road map

  • Extending admin to manage database driven questions/questionnaire
  • Extending admin control panel