IS480 Team wiki: 2014T1 Res Novae Diagrams
Stakeholders & Team | Technologies & Resources | Project Description | Project Scope |
Project Framework | Our Schedule | Project Metrics | Project Deliverables |
Project Diagrams & Technical Aspects | User Interface | User Review | Our Minutes |
Contents
Business Process Diagram
The basic business process flow of users using CAMANS are as follows:
Associate
Associates are tasked with the responsibilities of issuing specific beneficiaries (EZ-link cards, Cash transport, Meal cards etc.) to the needy foreign workers. As such, their business flow starts with the users keying in the foreign worker's FIN or identification number. In the event there is no match (i.e. first time user), the user will proceed to create a new case for the foreign worker. Should there be a case linked to the foreign worker, the user can then proceed to issue the beneficiaries as requested. The process ends when the foreign worker is cleared and the user proceeds to assist another foreign worker.
Specialist
Specialists are tasked with the intricate tasks of helping foreign workers who do not fall into any specific beneficiary (i.e. multiple/ sensitive or difficult cases). These users will access the full spectrum of job and worker compliments which CAMANS has to offer. Their business flow starts with the user keying in the foreign worker's FIN or identification number. In the event there is no match, the user will proceed to create a new case for the foreign worker. In the even there is a case linked to the foreign worker, the user can then view/edit or add information in the compliments which is required. The process ends when the foreign worker is cleared and the user proceeds to assist another foreign worker.
EER Diagram
Heeding the feedback given to the team during the mid-term presentations, we have reduced the database tables from 84 to 51. They are divided into 6 categories - namely user, worker, job, problem, attachment and drop downs.
For a high level view of the database, please refer to the following links:
[Midterm]
[Final]
CAMANS's database structure - By Categories
Primary Table name | Primary key | Foreign key | Other tables associated to this table |
---|---|---|---|
tbl_user | NRIC_No |
| |
tbl_worker | FIN_Number |
| |
tbl_job | Job_Id | FIN_Number |
|
tbl_problem | Problem_Id | FIN_Number, Job_Id |
|
tbl_dropdown | dropdown_Id |
User
Worker
Job
Problem
Attachment
Dropdown
Class Diagram
Our application applied Java model 2, which is associated with MVC(model-view-controller) paradigm, into our design. Requests from client side are passed to the controllers which conduct the logic needed to obtain content to display. It then decides which view to pass the request to. The view then renders the content passed by the controller.
Class diagram is important for large and complex systems and it also plays a useful role in the development of smaller systems. The use of class diagram helped us to clarify ideas in the initial design stages of an object oriented system when analyzing the requirements and deciding on the fundamental classes and how they will relate to each other.
The class diagram shown below illustrates CAMAN's design, methods and relations clearly, an essential since our system is fairly big. As illustrated, DBConnect class is the heart of our system from which the methods are retrieved in Servlets. Using the MVC framework, our system is very simply designed. Servlets will receive the value from the client side and use related methods in DBConnect to fulfill the users’ requests.
For a segmented view of our class diagram, please refer to the picture gallery below:
Use Case Diagram
As an administrator, management or a specialist, he/she can perform the functions below:
Function group | User related | Worker Related | Job Related | Problem related | Access rights | Attachment related | Miscellaneous |
---|---|---|---|---|---|---|---|
Administrator Specific functions |
|
|
|
|
|
|
|
Management Specific functions |
|
|
|
|
|
|
|
Specialist Specific functions |
|
|
|
|
|
|
|
As an associate, he/she can perform the functions below:
Function group | User related | Worker Related | Job related | Problem related | Miscellaneous |
---|---|---|---|---|---|
Associate Specific functions |
|
|
|
|
|
Administrator
Management
Specialist
Associate
System Architecture Diagram
Users access CAMANS through their smart devices (mobile phone, computer, or tablet) which utilizes HTTPS protocol to make a connection to the server via the internet. The HTTPS connection goes through the firewall, which acts as a safe-guard against certain port intrusion, to the Apache Tomcat Server. Once activated, the Apache Tomcat Server would proceed to process JSPs while sending SQL requests to mySQL (Server) and storage/ retrieval requests to the Linux file system.
Test cases
Rather than conduct "blind" testing, the team created a series of test cases which our testers used to test CAMANS. The test cases, separated by the roles ("Administrator", "Specialist" and "Associate"), are as follows:
Technical Difficulties & Solutions
Throughout the course of this FYP, Res Novae has faced numerous technical problems pertaining to Application coding, Server and Database. In a bid to help current and future FYP teams which might face similar issues, here are some of the more note worthy difficulties and solutions:
Database Inter-table linkage Issues
Problem:
CAMANS has a total of 84 tables which have different linkages within themselves. This results in several database search errors which plagued CAMANS very badly during the first few iterations. In addition, since CAMANS started development before the database can stabilize, correction works often proved to be tedious and extremely time consuming.
Solution:
A thorough understanding of the database you are trying to build is key to solving this issue. Although theoretically easy to implement, many database developers start to forget the linkages of their newly created tables after a period of time. In our case, we decided to investigate and identify the linkages between them. Creating special "keys" (table columns) which would tie the linked tables together, we managed to solve this issue. A abstract of our codes to create tables is as follows, take special notice of the created foreign key linkages (Job_key & Prob_key):
In addition, in the rare occurrence that there is a change in the values of the Primary keys which are linked to other tables, you can create your tables with the following code to allow auto updating of dependent tables:
Linux Server (Ubuntu)
Problem:
Unfamiliar with Linux and much less with Ubuntu command line, the team had a difficult time understanding how applications that worked fine on localhost suddenly becomes inaccessible when uploaded on the Linux Server. This cause us to face multiple HTTP related errors which caused much delay in deveopment. This is especially so since CAMANS relies heavily on the Linux File System to store it's attachments (User uploaded files).
Solution:
There are four things which you must be sure of before embarking on such a project. The team has found the following online help useful, we hope you can benefit from it as much as we did:
File permissions:
- Chmod command examples (Permissions)
- Chmod detailed explanation
- Chown Group permissions
- Understanding file permissions: Tutorial
Command Line (Terminal):
VI File editor (Command Line):
Linux file System:
Uncomplicatted Firewall:
Multiple criteria search
Problem:
Allowing the client to search with multiple criteria increases the usability of the system. However, it comes with the potential problems of having searches giving out erroneous results.
Solution:
Using an extensive "if-else" loop, we have created a servlet which would take in all the values keyed in by the user and systematically construct a SQL query which would be passed through the database. An example of such "combined" query is as follows:
Attachments
Problem:
Allowing the client to upload/edit all types of attachments into the File System without getting an error
Solution:
Although the required technology and code for attachment is not uniquely complex, we coded in such a way to be user-friendly and flexible in terms of usability. We allowed users to upload all types of files, even videos to the server, allow them to upload the multiple files with same file names, and allow them to edit the uploaded file name. The most uniqueness is that we leveraged the Linux-based file systems to avoid storing the huge files in the database that would maintain the speed of database query. Whenever the new worker is created, our application will create the new folder for this created worker in the Linux file system so that if a user uploads the files for this worker in the future, the actual file will be stored inside the folder created in Linux system instead of storing in the database.
In addition, we have configured CAMANS to only change the file name in the event the User wishes to edit file names. To prevent accidental, and potentially problematic, changes in file types, CAMANS would append the file type automatically to the edited file name for storage in the linux file system.
Form input data
Problem:
Certain special characters would cause CAMANS to malfunction and not save input properly
Solution
After testing and research into mySQL limitations, we realized that there are certain characters which were programmed to serve special functions in mySQL. As such, we utilized Parsley.js validation and set the pattern="^[A-Za-z0-9 .,!?/:;^%$&\(\)+=\-_@\{\}\<\>\[\]|*#]+$" for the text fields to prevent the user from entering these certain characters. In the event the User accidentally keyed in such values, a warning would be displayed requesting the User to change his/her values. In addition to the front end validation, we have configured the backend to handle such exceptions by implementing another round of validation.