Set up a learning management system that will enable me to create online training courses for clients.
1. Software used must be self hosted (on my server) and GPL (or similar) with no purchase fees or annual fees
2. Payment options and public registration must be disabled
3. I need to be able to import and export training courses from the software
4. I need to be able to run multiple copies of the script (for complete data segregation) on separate subdomains. If the solution proposed contains its own webserver, an additional software solution to map a subdomain to a specific port must be included.
5. I need to be able to allocate one or more "Managers" who can either register people manually or invite them by email to complete a specific course
6. I need to be able to create unlimited numbers of courses
7. I need to be able to generate and email a certificate to the "Manager(s)" and attendee when a course is completed
8. Courses need to be able to include: Images and text slide shows. Videos and text. Audio and text.
9. Courses need to have a multiple choice test to verify completion. These must be taken from a question bank so two tests are unlikely to be the same.
10. "Managers" need to be able to see the status of all people who have been invited, started and completed a training course
11. "Managers" need to be notified by email when a completed course is due to expire. This expiry period needs to be set manually for each course (I.E. "1 year", "3 years", "6 months") and easily invite people by email to complete the course again.
12. "Managers" must not have access to create, remove or edit courses
13. "Managers" must be able to view and retrieve all certificates for an individual at any time
14. "Managers" must be able to set an individual as "inactive" so they will no longer be notified of course expiry for this person
15. "Managers" must be able to delete personal information (Name, email, etc.) easily for an individual.
16. "Managers" must be able to take courses themselves
17. There should be minimal requirements for user data. It should be restricted to Name and email address.
18. Certificate templates must be customisable
1. Any programming language and database type is considered, but must be approved before commencing the project if it is not PHP with MySQL.
2. Direct https access via a pre-existing webserver (nginx for static content, apache for dynamic content and php) is preferred over non-standard ports and standalone webservers
3. The software must run on linux servers (Ubuntu 18.04 LTS)
4. Custom modifications to GPL software are welcome as a solution
5. Use of additional software such as WordPress with plugins is acceptable as a solution provided there are no ongoing or initial purchase fees.
6. Completely custom written software is considered