Fri, 15 Nov 2013 23:37:03 GMT
LightSwitch is the fastest way to build line of business applications and we have the Apps to prove it! This post is part of a series showcasing the use of LightSwitch in Visual Studio 2013 to build html5 single page applications.
Welcome to the LightSwitch html5 Training Manager App:
The Training Manager App is a tool for managing internal employee training requirements. The Training Manager App allows organisation to define a series of training courses and then assign employees to those courses, offering them the opportunity to book training sessions and track training as it takes place.
This is a fully featured complete LightSwitch html5 line of business application which you can extend and adapt to your specific needs. The source code is now available priced at just just $9.99. Get your copy now.
The Training Manager demo can be accessed on windows azure at http://delordson.cloudapp.net/TrainingManagerApp/htmlclient/. To get the most out of the demo add yourself to the Employees table once you’ve logged in! Join the conversation by leaving a comment to this post for any suggestions of thought about the Training Manager App.
The Training Manager App Home Page is laid out in two tabs, a Menu tab and a Settings tab. The Menu tab is used to access the primary modules which include the Manage Courses Module, the My Courses Module, the All Training Records Module, the My Training Records Module and the Training Sessions Module. The settings tab is used to access the Employees, Employee Groups, Employee Job Roles as well as the Course Statuses.
These modules are supported by a mature database schema…
…and key validation and business rules. These include:
- All Employees must belong to one and only one employee group
- An employee can have multiple job roles
- Employees can be assigned individually to training courses
- An Employee Group can also be assigned to a training course. When an Employee Group is assigned, all employees in that group are automatically assigned to the Course
- Finally a Job Role can be assigned to a training course. When a Job Role is assigned, all employees with that job role are automatically assigned to the course
- There is built in validation logic that prevents a training completion date from being set to a date earlier than the training commencement date
- An email is automatically sent to an employee as soon as they are assigned to a course
- A training record is created for an employee as soon as they are assigned to a course
- When assigning employee to course, a target completion date must be set
- It is not possible to set a training completion target that is earlier than the date training is assigned
- The course administrator can organise an unlimited number of training sessions for a course
- Validation logic does not allow a training session end date to be earlier than the start date
- Each session must have a max permitted number of attendees. Training Manager does not allow more students to be assigned than is set for course capacity
Access is controlled through a log in screen. The administrator uses an associated Silverlight application to configure new users, create roles and permissions for those roles as well as to assign users to roles.
The Home Screen Menu Tab
Access to all the key users features of the Training Manager App is from the home page Menu Tab. From here, users can navigate to the ‘Manage Courses Module’, the ‘My Courses Module’, the ‘All Training Records Module’, the ‘My Training Records Module’ and the ‘Training Sessions Module’.
Clicking or tabbing on the Manage Courses button takes the user to the ‘Browse Courses’ Page. On this page, the user of presented with a list of all Courses. A search box is present for quickly navigating to a required Course.
Clicking or tabbing on any Courses listed takes the user to a page for managing that Course. This page provides for full details of the Course, including status and version.
The page is laid out in a series of tabs. The first tab presents key information about the Course such as its reference code, title, description, version number and status.
Of course the built in LightSwitch validation of required fields and field lengths works great as expected…
…but we’ve also added business logic where it makes sense. So you can’t add employees to a training session if the maximum number of attendees has been reached for instance. More on this later.
The Employees tab allows the user to assign individual Employees to a training course.
Each employee can have multiple job roles. The Job Roles tab allows the user to assign a job role to a training course. When a Job Role is assigned, all Employees with that Job Role are automatically assigned to the course.
Each Employee belongs to one and only one Employee Group. The Employee Groups tab allows the user to assign an employee group to a training course. When an Employee Group is assigned, all Employees with that job role are automatically assigned to the course.
All Employees who are assigned to a training course, whether assigned as individual Employees, through a Job Role or through an Employee Group, get an email alert.
Finally the Training Session tab allows the course administrator to lay on a number of sessions.
Clicking or tabbing on a session opens the Session details screen. This screen is laid out in two tabs. A details tab showing the start and end times as well as the max number of attendees…
…and an Attendees tab used to book attendance.
Business rules prevent further Employees from booking if the maximum number of attendees has been reached.
The My Courses Module presents a list of Courses that the logged in user has been assigned to.
Clicking or tabbing on any of these courses takes the user to the same course details screen described above…
All Training Records
The All Training Records module provides a list of all training records in the application. A training record is created by the system each time an Employee is assigned to a training courses. This is the case whether the Employee is assigned directly or is assigned through a Job Role or through their Employee Group.
Clicking or tabbing on any of these opens an edit screen allowing the user to record training details.
My Training Records
The My training Records module provides a list of all training record for the logged in user.
Clicking or tabbing on any of these opens the same edit screen described above.
The Training Sessions module provides a top level list of all training sessions across all training courses allowing the user to quickly browse to a required session.
Clicking or tabbing on any of these finding actions opens a the same Training Session details screen shown earlier.
The Settings Module is the key module used by the administrator and any other users given the right permissions for managing key application reference data. The Settings module is accessed by clicking or tabbing on the Settings tab on the home page. This takes the user to the settings page.
The main items managed are the Course Statuses, the Employees Groups, Employees and Job Roles.
Clicking or tabbing on an employee takes the user to the Employee details screen. The screen is laid out in two tabs. A details tab and a Job Roles tab. The details tab shows the Employee name as well as the Employee Group they belong to.
An Employee can only belong to a single Employee Group…
The Job Roles tab show the list of Job Roles the Employee has. An Employee can have multiple Job Roles…
The Training Manager App is a fully featured complete LightSwitch html5 line of business application which you can extend and adapt to your specific needs. This is a fully featured complete LightSwitch html5 line of business application which you can extend and adapt to your specific needs. The source code is now available priced at just just $9.99. Get your copy now.
Don’t forget to try out the demo on windows azure at http://delordson.cloudapp.net/TrainingManagerApp/htmlclient/. To get the most out of the demo add yourself to the Employees table once you’ve logged in. Finally please join the conversation by leaving a comment to this post for any suggestions of thoughts.