HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2014T1 Res Novae Diagrams"

From IS480
Jump to navigation Jump to search
Line 196: Line 196:
  
 
|style ="background-color:white; text-align:left"|<ul>
 
|style ="background-color:white; text-align:left"|<ul>
&nbsp;Smith or 400&nbsp;
+
<br>
 
<li>Search</li>
 
<li>Search</li>
 
<li>Revoke user</li>
 
<li>Revoke user</li>

Revision as of 09:24, 28 November 2014

ResNovaeLogo.png


Aboutus.png Stakeholders & Team Glyphicons 050 link.png Technologies & Resources Glyphicons social 00 pinterest.png Project Description Glyphicons 039 notes.png Project Scope
Glyphicons 001 leaf.png Project Framework Calendaricon.png Our Schedule Glyphicons 040 stats.png Project Metrics Glyphicons 041 charts.png Project Deliverables
Glyphicons social 36 last fm.png Project Diagrams & Technical Aspects Glyphicons social 41 myspace.png User Interface Glyphicons 336 iphone shake.png User Review Glyphicons 463 server.png Our Minutes


Business Process Diagram

The basic business process flow of users using CAMANS are as follows:

Associate

Associate biz process.jpg

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

Specialist biz process.jpg

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_attachment
tbl_worker FIN_Number
  • tbl_worker_nickname
  • tbl_worker_passport_details
  • tbl_worker_facepic
  • tbl_home_country_phone_number
  • tbl_sg_phone_number
  • tbl_sg_address
  • tbl_home_country_address
  • tbl_digital_contact
  • tbl_kin
  • tbl_family_member
  • tbl_sg_friend
  • tbl_sg_address
  • tbl_language
  • tbl_bank_acc_details
  • tbl_worker_attachment
tbl_job Job_Id FIN_Number
  • tbl_pass_details
  • tbl_ipa_details
  • tbl_verbal_assurances
  • tbl_employment_contract
  • tbl_agent
  • tbl_employer
  • tbl_workplace
  • tbl_work_history
  • tbl_accomodation
tbl_problem Problem_Id FIN_Number, Job_Id
  • tbl_aggravating_issue
  • tbl_lead_case_worker
  • tbl_auxillary_case_worker
  • tbl_salary_history
  • tbl_injury
  • tbl_illness
  • tbl_other_problems
  • tbl_trafficking_indicators
  • tbl_salary_claim_lodged
  • tbl_wica_claim
  • tbl_non_wica_claim
  • tbl_police_report
  • tbl_other_complaint
  • tbl_case_discussion
  • tbl_hospital
  • tbl_MC_status
  • tbl_R2R
  • tbl_wica
  • tbl_lawyer
  • tbl_casemilestone_noncriminal
  • tbl_casemilestone_criminal
  • tbl_ttr
  • tbl_benefaction
  • tbl_benefaction_mealcard
  • tbl_benefaction_farego
  • tbl_benefaction_karunya
tbl_dropdown dropdown_Id

User

Tbl user.PNG


Worker

Overview of Worker Details.PNG


Job

Overview Job Tables.PNG


Problem

Overview Problem Tables.PNG.png



Attachment

Tbl worker attachment.png


Dropdown

Tbl dropdown.png


Class Diagram

Our application applies Java model 2, which is associated with MVC(model-view-controller) paradigm. 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.


ResNovae JSP Model 2.png


In our application, first request from client side is passed to the LoginController. LoginController will go through back end logic to transfer query to LoginServlet, which will pull in user manager class to go to individual users.

ResNovae-ClassDiagram.jpg

Use Case Diagram

As an administrator, management or a specialist, he/she can perform the functions below:

Function group User related Worker Related Problem related Access rights Attachment related Miscellaneous
Administrator Specific functions
  • Create user
  • Read user
  • Update user
  • Create worker
  • Read worker
  • Update worker
  • Create problem
  • Read problem
  • Update problem
  • Access as manager
  • Access as specialist
  • Access as associate
  • Create file attachment
  • Import file attachment
  • Update file attachment


  • Search
  • Revoke user
  • View gallery


Management Specific functions
  • Read user
  • Update user
  • Create worker
  • Read worker
  • Update worker
  • Create problem
  • Read problem
  • Update problem
  • Access as specialist
  • Access as associate
  • Create file attachment
  • Read file attachment
  • Update file attachment
  • Search
  • View gallery
Specialist Specific functions
  • Read user
  • Update user
  • Create worker
  • Read worker
  • Update worker
  • Create problem
  • Read problem
  • Update problem
  • Access as associate
  • Create file attachment
  • Read file attachment
  • Update file attachment
  • Search
  • View gallery


As an associate, he/she can perform the functions below:

Function group User related Worker Related Problem related Job related Miscellaneous
Specific functions
  • Read user
  • Update user
  • Create worker
  • Read worker
  • Update worker
  • Create problem
  • Read problem
  • Update problem
  • Read job
  • Create job
  • Edit job
  • Search
  • View gallery

Administrator

Administrator Midterm.png

Management

ResNovae Management.jpg

Specialist

ResNovae Specialist.jpg

Associate

ResNovae AssociateEdit.png

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.

Final system architecture diagram.jpg

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:

Sql4.JPG

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:

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: SQL example.JPG