-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsrs.html
757 lines (664 loc) · 40.5 KB
/
srs.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
<html>
<head>
<title>SRS For Traffic Violation Ticketing System</title>
<link rel="stylesheet" href="./assets/css/main.css">
</head>
<body>
<h1>Software Requirements Specification</h1>
<h1>for</h1>
<h1>Traffic Violation Ticketing System</h1>
<p>Version 1.0 approved</p>
<p>Prepared by: </p>
<p><b>Koushik Roy</b></p>
<p><b>Sidratul Muntaha</b></p>
<p><b>Nushrat Tanzeem</b></p>
<p>Date: 8th October 2018</p>
<!-- TABLE OF CONTENTS START -->
<h1 id="tableofcontents">Table of Contents</h1>
<ul style="list-style-type:none">
<li><p><b><a href="#tableofcontents">Table of Contents</a></b></p></li>
<li><p><b><a href="#revisionhistory">Revision History</a></b></p></li>
<li><p><b><a href="#introduction">1. Introduction</a></b></p>
<ul>
<li><p><a href="#purpose">1.1 Purpose</a></p></li>
<li><p><a href="#documentconventions">1.2 Document Conventions</a></p></li>
<li><p><a href="#intendedaudience">1.3 Intended Audience and Reading Suggestions</a></p></li>
<li><p><a href="#productscope">1.4 Product Scope</a></p></li>
<li><p><a href="#references">1.5 References</a></p></li>
</ul>
</li>
<li><p><b><a href="#overalldescription">2. Overall Description</a></b></p>
<ul>
<li><p><a href="#productperspective">2.1 Product Perspective</a></p></li>
<li><p><a href="#productfunctions">2.2 Product Functions</a></p></li>
<li><p><a href="#userclasses">2.3 User Classes and Characteristics</a></p></li>
<li><p><a href="#operatingenvironment">2.4 Operating Environment</a></p></li>
<li><p><a href="#designconstraints">2.5 Design and Implementation Constraints</a></p></li>
<li><p><a href="#userdocumentation">2.6 User Documentation</a></p></li>
<li><p><a href="#assumptions">2.7 Assumptions and Dependencies</a></p></li>
</ul>
</li>
<li><p><b><a href="#externalinterfacerequirements">3. External Interface Requirements</a></b></p>
<ul>
<li><p><a href="#userinterfaces">3.1 User Interfaces</a></p></li>
<li><p><a href="#hardwareinterfaces">3.2 Hardware Interfaces</a></p></li>
<li><p><a href="#softwareinterfaces">3.3 Software Interfaces</a></p></li>
<li><p><a href="#communicationinterfaces">3.4 Communications Interfaces</a></p></li>
</ul>
</li>
<li><p><b><a href="#systemfeatures">4. System Features</a></b></p>
<ul>
<li><p><a href="#4.1">4.1 Driver Registration</a></p></li>
<li><p><a href="#4.2">4.2 Login</a></p></li>
<li><p><a href="#4.3">4.3 Check User Type</a></p></li>
<li><p><a href="#4.4">4.4 View/Edit User Profile</a></p></li>
<li><p><a href="#4.5">4.5 Check Currently Active Tickets</a></p></li>
<li><p><a href="#4.6">4.6 Check Past Tickets</a></p></li>
<li><p><a href="#4.7">4.7 Create Police Account</a></p></li>
<li><p><a href="#4.8">4.8 Check and Resolve Active Tickets</a></p></li>
<li><p><a href="#4.9">4.9 Check all Past Tickets</a></p></li>
<li><p><a href="#4.10">4.10 Add a Ticket</a></p></li>
<li><p><a href="#4.11">4.11 Check Past Reported Tickets</a></p></li>
</ul>
</li>
<li><p><b><a href="#othernonfunctionalrequirements">5. Other Nonfunctional Requirements</a></b></p>
<ul>
<li><p><a href="#performancerequirements">5.1 Performance Requirements</a></p></li>
<li><p><a href="#safetyrequirements">5.2 Safety Requirements</a></p></li>
<li><p><a href="#securityrequirements">5.3 Security Requirements</a></p></li>
<li><p><a href="#softwarequalityattributes">5.4 Software Quality Attributes</a></p></li>
<li><p><a href="#businessrules">5.5 Business Rules</a></p></li>
</ul>
</li>
<!--
<li><p><b><a href="">Other Requirements</a></b></p></li>
<li><p><b><a href="">Appendix A: Glossary</a></b></p></li>
<li><p><b><a href="">Appendix B: Analysis Models</a></b></p></li>
<li><p><b><a href="">Appendix C: To Be Determined List</a></b></p></li>
-->
</ul>
<!-- TABLE OF CONTENTS END -->
<!-- Revision History Starts -->
<h1 id="revisionhistory">Revision History</h1>
<table border="1">
<thead>
<tr>
<td><p><strong>Name</strong></p></td>
<td><p><strong>Date</strong></p></td>
<td><p><strong>Reason For Changes</strong></p></td>
<td><p><strong>Version</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>Initial Revision</td>
<td>08-10-2018</td>
<td>No changes</td>
<td>1.0</td>
</tr>
<tr>
<td>First Change</td>
<td>24-10-2018</td>
<td>Database updated, All three users will have web app not only Admin. Only Police will have a mobile app. Use Case Diagrams Updated.</td>
<td>1.1</td>
</tr>
</tbody>
</table>
<!-- Revision History Ends -->
<h1 id="introduction">1. Introduction</h1>
<h2 id="purpose">1.1 Purpose</h2>
<p>The product deals with the Traffic violation; where the traffic police fines the driver with this software and the driver can log into the software and check his fine and due date. Afterwards , he pays his fine to the adminstrator, which can check and resolve all the tickets after the driver pays the fine. This is the initial version of the SRS.And has scopes in government in traffic control centres.</p>
<h2 id="documentconventions">1.2 Document Conventions</h2>
<p>While writing this SRS, IEEE SRS formatting was used. All the six sections in this SRS has a bold font , and are larger than the subsections. Whereas, at the same time, the subsections also have bold fonts and are larger than the description of each subsections. The term <b>App</b> is also used throughout this document in short form of Application.</p>
<h2 id="intendedaudience">1.3 Intended Audience and Reading Suggestions</h2>
<p>The readers that the document is intended for are the developers , marketing staff , testers and users(police, drivers and Adminstrator).This SRS contains the descriptions of the users clases and interface, products, design and implementation Constraints, interfaces of the hardware , software and communications, the useclass of different systems and other non functional requirements. </p>
<h2 id="productscope">1.4 Product Scope</h2>
<p>The software deals with the implementation on a smart phone application which allows the traffic police and drivers to deal with the process of ticketing after the violation of traffic. The police takes a picture of the license and vehicle registration plate by the use of the API , and fines the driver using the app; while the driver can log into the software and input the registration ID to check the due date and the fine they have to pay. To pay this fine, the drivers then visit the adminstrator , who can also check the active tickets and resolve them. The goal is to make the whole system of traffic violation ticketing easier than before , for police,driver and also the adminstrator.
The benefits of this system are:
<ul>
<li> It's more accessible</li>
<li> The driver will not need to stand in line for hours to get their schedule to pay the fine</li>
<li> Less paperwork for adminstrator and police</li>
<li> Police will not have to go to the adminstrators office to submit the registered cases, as they will be updated automatically.</li>
<li> Drivers will not have any chances of losing the paper, since it will be in the app</li>
<li> Less time consuming</li>
<li> User-Friendly</li>
</ul>
</p>
<h2 id="references">1.5 References</h2>
<p>
<ul>
<li><a href="https://www.fluidui.com" target="_blank">Fluid UI</a>, which was used for UI wireframing.</li>
<li><a href="https://draw.io" target="_blank">Draw.io</a>, which was used for creating Use case diagrams.</li>
<li><a href="https://www.uml-diagrams.org/use-case-include.html" target="_blank">Use Case Diagram Include</a>, which was used for understanding the <b>Include</b> relationship in Use Case diagrams.</li>
</ul>
</p>
<h1 id="overalldescription">2. Overall Description</h1>
<h2 id="productperspective">2.1 Product Perspective</h2>
<p>Traffic violation ticketing system is a user friendly application which works under three different parts; police gives tickets using the app, drivers use the app to check their current and previous tickets and administrators use the the app to resolve the tickets. So basically, the purpose behind this app is to make the police ticketing suystem more easier and save the data for future purpose.</p>
<h2 id="productfunctions">2.2 Product Functions</h2>
<p>This app is basically for the police and the drivers to main the traffic rules. By using this app the police can easily track the people who violate the traffic rules and they will give a ticket by using this app. Drivers will get the ticket and the other information and due date to resolve the ticket through the app. Car owners can also login for their cars to know the fees , ticket's last date to resolve etc through the app.</p>
<h2 id="userclasses">2.3 User Classes and Characteristics</h2>
<p>Administrators can create account for police. They can check/resolve active tickets and will also check all past tickets. They can also edit profile and check the type of user. Drivers will register as driver in the app. They can login to the account. They can check their currently active and past tickets. They can also view or edit the profile. Police officers can add traffic violation tickets for any violation. They can also check the previous reported tickets. They can also view or edit any drivers profile.</p>
<h2 id="operatingenvironment">2.4 Operating Environment</h2>
<p>Our Software will maintain a Client and Server System. The Client System will be in form of an mobile/web App which will require an <b>Android Phone</b> and a Web Application which can be used from any <b>Web Browser</b>. The Android App will be a native app and will be built using <b>Java</b> and the Web App will be built with <b>Javascript</b> using <b>React Framework</b> for front-end and <b>Redux</b> to allow central data storage. The backend will consist of the REST Apis which be developed with <b>Javascript</b> with <b>Node.js Library</b> using the <b>Express Framework</b>. The database system to be used is MySQL.</p>
<h2 id="designconstraints">2.5 Design and Implementation Constraints</h2>
<p>According to the app design, OCR API is needed for the image of license and number plate of the car taken by the police. So good quality image is required to get the exact results.</p>
<h2 id="userdocumentation">2.6 User Documentation</h2>
<p>It is an user friendly app but still we will provide user manual with screenshot to help the users.></p>
<h2 id="assumptions">2.7 Assumptions and Dependencies</h2>
<p>In our app, for OCR we have used API which will be the third party. So we assume that it will cooperate with almost zero error percentage providing a good result.</p>
<h1 id="externalinterfacerequirements">3. External Interface Requirements</h1>
<h2 id="userinterfaces">3.1 User Interfaces</h2>
<p>The software for the Police and Drivers will be an Android Application, and the software for the admins will be a Web Application. The UI mockups for the mentioned characters are given below.</p>
<!--UI Screenshot Start-->
<div class="row">
<div class="column">
<img src="./assets/ui_mockup/police_app/Police_App_Login.png" alt="Police App Login" style="width:80%;height:90%;">
<p class="center-text">Fig: Police App Login</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/police_app/Police_App_Login_error.png" alt="Police App Login Error" style="width:80%;height:90%;">
<p class="center-text">Fig: Police App Login Error</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/police_app/Police_App_Add_Ticket.png" alt="Police App Add Ticket" style="width:80%;height:90%;">
<p class="center-text">Fig: Police App Add Ticket Form</p>
</div>
</div>
<div class="row">
<div class="column">
<img src="./assets/ui_mockup/police_app/Police_App_Edit_Profile.png" alt="Police App Edit Profile" style="width:80%;height:90%;">
<p class="center-text">Fig: Police App Edit Profile</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/police_app/Police_App_Search.png" alt="Police App Search" style="width:80%;height:90%;">
<p class="center-text">Fig: Police App Search</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/police_app/Police_App_Search_Result.png" alt="Police App Search Details" style="width:80%;height:90%;">
<p class="center-text">Fig: Police App Search Details</p>
</div>
</div>
<div class="row">
<div class="column">
<img src="./assets/ui_mockup/admin/Admin_Login.png" alt="Admin Login" style="width:100%;">
<p class="center-text">Fig: Admin Login</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/admin/Admin_Login_Error.png" alt="Admin Login Error" style="width:100%;">
<p class="center-text">Fig: Admin Login Error</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/admin/Admin_Dashboard.png" alt="Admin Dashboard" style="width:100%;">
<p class="center-text">Fig: Admin Dashboard</p>
</div>
</div>
<div class="row">
<div class="column">
<img src="./assets/ui_mockup/admin/Admin_Create_Police_Account.png" alt="Admin Create Police Account" style="width:100%;">
<p class="center-text">Fig: Admin Create Police Account</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/admin/Admin_Resolve_Ticket_Search.png" alt="Admin Resolve Ticket Search" style="width:100%;">
<p class="center-text">Fig: Admin Resolve Ticket Search</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/admin/Admin_Resolve_Ticket_Search_Result.png" alt="Admin Resolve Ticket Search Result" style="width:100%;">
<p class="center-text">Fig: Admin Resolve Ticket Search Result</p>
</div>
</div>
<div class="row">
<div class="column">
<img src="./assets/ui_mockup/admin/Admin_Resolve_Ticket.png" alt="Admin Resolve Ticket" style="width:100%;">
<p class="center-text">Fig: Admin Resolve Ticket</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/admin/Admin_Edit_Profile.png" alt="Admin Edit Profile" style="width:100%;">
<p class="center-text">Fig: Admin Edit Profile</p>
</div>
</div>
<div class="row">
<div class="column">
<img src="./assets/ui_mockup/user/User_Register.png" alt="User Register" style="width:80%;height:90%;">
<p class="center-text">Fig: User Register</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/user/User_Login.png" alt="User Login" style="width:80%;height:90%;">
<p class="center-text">Fig: User Login</p>
</div>
<div class="column">
<img src="./assets/ui_mockup/user/User_Active_Tickets.png" alt="User Active Tickets" style="width:80%;height:90%;">
<p class="center-text">Fig: Currently Active Tickets for the User</p>
</div>
</div>
<div class="row">
<div class="column">
<img src="./assets/ui_mockup/user/User_Active_Tickets_Result.png" alt="User Active Tickets Result" style="width:80%;height:90%;">
<p class="center-text">Fig: Result of Active Tickets for the User</p>
</div>
</div>
<!--UI Screenshot End-->
<h2 id="hardwareinterfaces">3.2 Hardware Interfaces</h2>
<p>We will be using the camera of a mobile phone to take photos when the Police will be adding the tickets.</p>
<h2 id="softwareinterfaces">3.3 Software Interfaces</h2>
<p>The software interface can be describe using the figure below: </p>
<img src="./assets/diagrams/Software_Interface.png" class="center-image" alt="Software Interface">
<p class="center-text">Fig: Software Interface</p>
<h2 id="communicationinterfaces">3.4 Communications Interfaces</h2>
<p>We will be using REST(REpresentational State Transfer) architectural style for our data transmission services. It mainly depends on the internets HTTP protocol to send and receive data. The data security relies on the Secure Socket Layer(SSL) encryption and Transport Layer Security(TLS).</p>
<h1 id="systemfeatures">4. System Features</h1>
<!-- Use Case Diagrams Start-->
<p>The main features of this system has been represented below in form of UML Use Case Diagrams.</p>
<img src="./assets/use_case_diagrams/Police_Use_case.png" class="center-image" alt="Police Use Case Diagram">
<p class="center-text">Fig: Police use case diagram</p>
<br>
<img src="./assets/use_case_diagrams/Driver_use_case.png" class="center-image" alt="Driver Use Case Diagram">
<p class="center-text">Fig: Driver use case diagram</p>
<br>
<img src="./assets/use_case_diagrams/Admin_Use_case.png" class="center-image" alt="Admin Use Case Diagram">
<p class="center-text">Fig: Admin use case diagram</p>
<br>
<!-- Use Case Diagrams End-->
<h2 id="4.1">4.1 Driver Registration</h2>
<p>Use Case Name: Driver Registration</p>
<p>Actor: Driver/User</p>
<p>Type: Primary</p>
<p>Description: Allow drivers to register for application to check their updates regarding traffic violence.</p>
<p>Typical Course of Events: </p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. Go to "Traffic Violence Ticketing System"</td>
<td>2. System serves the "Signup" page</td>
</tr>
<tr>
<td>3. Enter Full Name, Email, Password and Drivers License No</td>
<td>4. System authenticates user id and information and shows portal page</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>Wrong Credential, back to the signup page. </li>
<li>Give message to the system. </li>
</ul>
</p>
<h2 id="4.2">4.2 Login System</h2>
<p>Use Case Name: Login to actor's account</p>
<p>Actor: Police, Driver, Administrator</p>
<p>Type: Primary</p>
<p>Description: Allow to login to their accounts.</p>
<p>Typical Course of Events: </p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. Go to "Traffic Violation Ticketing System"</td>
<td>2. System serves the login page</td>
</tr>
<tr>
<td>3. Actor gives email id and password</td>
<td>4. System authenticates user and shows portal page</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>Wrong Credential, repromp to login</li>
</ul>
</p>
<h2 id="4.3">4.3 Check User Type</h2>
<p>Use Case Name: Check User Type</p>
<p>Actor: Police, Driver and Administrator</p>
<p>Type: Secondary</p>
<p>Description: Check the user whether it's police or driver or administrator.</p>
<p>Typical Course of Events: </p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. Follow the "Login"</td>
<td>2. System checks the user type and returns the dashboard accordingly</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>Wrong Credential, gives a message</li>
</ul>
</p>
<h2 id="4.4">4.4 View/Edit Profile</h2>
<p>Use Case Name: View/ Edit my profile </p>
<p>Actor: Police, Driver, Admin</p>
<p>Type: Primary</p>
<p>Description: Allows the police, Driver and admin to view their profiles, edit it and update accordingly. </p>
<p>Typical Course of Events: </p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. From the Dashboard select "View/Edit My Profile" button</td>
<td>2. System serves the View/Edit My Profile Page</td>
</tr>
<tr>
<td>3. Actor views and edits the information.</td>
</tr>
<tr>
<td>4. Actor selects the "Edit Profile" option.</td>
<td>5. System takes the Input and shows message "successfully Updated".</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>'Password' does not match with the 'Confirm password', shows message</li>
</ul>
</p>
<h2 id="4.5">4.5 Checking Active Tickets </h2>
<p>Use Case Name:Check my current active tickets </p>
<p>Actor: User/Driver</p>
<p>Type: Primary </p>
<p>Description: This allows the User/ Driver to check if he has any active tickets.</p>
<p>Typical Course of Events: </p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. From the Dashboard select "Check My Current Active Tickets" button</td>
<td>2. System serves the Current Active Tickets Page</td>
</tr>
<tr>
<td>3. Actor selects the ticket</td>
<td>4. System serves the ticket details page</td>
</tr>
<tr>
<td>7. Actor looks at the ticket data to serve his purpose and press dashboard on Navigation bar</td>
<td>8. System serves the dashboard page</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>No Active ticktes available, Shows message</li>
</ul>
</p>
<h2 id="4.6">4.6 Check Past Tickets</h2>
<p>Use Case Name: Check my Past tickets</p>
<p>Actor: Driver/User</p>
<p>Type: Primary</p>
<p>Description: The Drivers/Users will be able to view their past ticket records.</p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. From the Dashboard, Select "Check My Past Tickets"</td>
<td>2. System serves the Past Tickets page</td>
</tr>
<tr>
<td>3. Actor inputs the information in the text box</td>
</tr>
<tr>
<td>4. Actor selects the "create account" option</td>
<td>5. System takes the input and shows "Account Created Successfully" message.
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>Search Results are empty, change the search parametes and try again.</li>
</ul>
</p>
<h2 id="4.7">4.7 Create Police Account</h2>
<p>Use Case Name: Create Account for Police</p>
<p>Actor: Administrator</p>
<p>Type: Primary</p>
<p>Description: The purpose of this use case is to create a new account for the police.</p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. From the Dashboard select "Check My Past Tickets" button</td>
<td>2. System serves the Search Page</td>
</tr>
<tr>
<td>3. Actor searches using any given search parameter</td>
<td>4. System shows the search results below the form</td>
</tr>
<tr>
<td>5. Actor selects the ticket</td>
<td>6. System serves the ticket details page</td>
</tr>
<tr>
<td>7. Actor looks at the ticket data to serve his purpose and press dashboard on Navigation bar</td>
<td>8. System serves the dashboard page</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>If any input textbox is blank, shows message.</li>
</ul>
</p>
<h2 id="4.8">4.8 Check and Resolve Active Tickets</h2>
<p>Use Case Name: Check and Resolve Active Tickets</p>
<p>Actor: Administrator</p>
<p>Type: Primary</p>
<p>Description: The purpose of this use case is when the Driver/User needs to resolve their tickets. They need to come to the Administrator who will check and verify his documents and resolve that ticket along with the Ticket Fee.</p>
<p>Typical Course of Events: </p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. From the Dashboard press Resolve active Ticket button</td>
<td>2. System serves the Search Page</td>
</tr>
<tr>
<td>3. Actor searches using any given search parameter</td>
<td>4. System shows the search results below the form</td>
</tr>
<tr>
<td>5. Actor selects the ticket</td>
<td>6. System serves the ticket details page</td>
</tr>
<tr>
<td>7. Actor selects the Resolved option and presses update if the Driver has been verified and paid his dues</td>
<td>8. System search page with success message</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>Driver could not be verified, so do not proceed to resolve the ticket.</li>
<li>Search Results are empty, change the search parametes and try again.</li>
</ul>
</p>
<h2 id="4.9">4.9 Check all past Tickets</h2>
<p>Use Case Name: Check all past tickets</p>
<p>Actor: Administrator</p>
<p>Type: Primary</p>
<p>Description: The purpose of this use case is to look at previous ticket data just for office and archive purposes.</p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. From the Dashboard press Check Past Tickets button</td>
<td>2. System serves the Search Page</td>
</tr>
<tr>
<td>3. Actor searches using any given search parameter</td>
<td>4. System shows the search results below the form</td>
</tr>
<tr>
<td>5. Actor selects the ticket</td>
<td>6. System serves the ticket details page</td>
</tr>
<tr>
<td>7. Actor looks at the ticket data to serve his purpose and press dashboard on Navigation bar</td>
<td>8. System serves the dashboard page</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>Search Results are empty, change the search parametes and try again.</li>
</ul>
</p>
<h2 id="4.10">4.10 Add Traffic Violation Ticket</h2>
<p>Use Case Name: Add Traffic Violation Ticket</p>
<p>Actor: Police</p>
<p>Type: Primary</p>
<p>Description: The purpose of this use case is when the Police officer detects a Traffic Violation they can issue Traffic Violation Tickets to the driver.</p>
<p>Typical Course of Events: </p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. From the Dashboard press Add License button</td>
<td>2. Mobile phone opens up the camera</td>
</tr>
<tr>
<td>3. Actor takes the photo and presses the Add No. plate button</td>
<td>4. Mobile phone opens up the camera</td>
</tr>
<tr>
<td>5. Actor takes the photo and fills up the rest of the form and presses submit</td>
<td>6. System adds the ticket to the database and serves the dashboard page with success message</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>Ticket Due date is invalid, shows a prompt and reenter the due date.</li>
</ul>
</p>
<h2 id="4.11">4.11 Check Past Reported Tickets</h2>
<p>Use Case Name: Check My Past Reported Tickets</p>
<p>Actor: Police</p>
<p>Type: Primary</p>
<p>Description: The purpose of this use case is for the Police officer to check the tickets that they have issued.</p>
<p>Typical Course of Events: </p>
<table border="1">
<thead>
<tr>
<td><p><strong>Actor Actions</strong></p></td>
<td><p><strong>System Responses</strong></p></td>
</tr>
</thead>
<tbody>
<tr>
<td>1. From the side navigation bar press Reported Tickets</td>
<td>2. System shows the Reported Tickets Search Page</td>
</tr>
<tr>
<td>3. Type in the search parameters and press search</td>
<td>4. System shows the search results below the form</td>
</tr>
<tr>
<td>5. Actor press a ticket to see the details</td>
<td>6. System shows a popup to display the selected ticket information.</td>
</tr>
</tbody>
</table>
<p>Alternative course of events: </p>
<p>
<ul>
<li>Search Result is empty, System will display a message saying no search result returned. So, user should change the search parameters and retry the search.</li>
</ul>
</p>
<!--Non functional Reuiqrements start-->
<h1 id="othernonfunctionalrequirements">5. Other Nonfunctional Requirements</h1>
<h2 id="performancerequirements">5.1 Performance Requirements</h2>
<p>We recommend to use a new generation Android phone to ensure smooth and lag free navigation in the mobile app. The camera of the Android phone for the Police should be of better quality to help during Image Processing. The web application should operate without any performance issues in any normal condition. When making API calls from both the Web app and the mobile app the duration of the response depends on the internet connection latency with the API Server. This factor will also affect when the API server will request the database server for data or manipulate data.</p>
<h2 id="safetyrequirements">5.2 Safety Requirements</h2>
<p>The information will be encrypted and will be transmitted securely to and from the server. The passwords will be encrypted using salted SHA1 algorithm which will ensure user account security.</p>
<h2 id="securityrequirements">5.3 Security Requirements</h2>
<p>No specific security requirement just that the users should maintain their own security physically around them to avoid their accounts being compromised.</p>
<h2 id="softwarequalityattributes">5.4 Software Quality Attributes</h2>
<p>
<ul>
<li><b>Easy To Use</b></li>
<p>The easy to use interfaces can be very helpful for the users to work and navigate through the app.</p>
<li><b>Credential Security</b></li>
<p>Ensure that the users credentials are throughly secured with secure data transfer protocols and encrypted on the server.</p>
</ul>
</p>
<h2 id="businessrules">5.5 Business Rules</h2>
<p>The Administrator Accounts will be created by default. The Administrator in this system is responsible for creating the Police Accounts. So, the Police Accounts mainly function after they have been created by the Administrator. On the other hand the User Accounts are independent of any other users/rules, as they can create the accounts themselves. The tickets that the users will see in their account will show up if the police adds a ticket for that particular users Driving License Number.</p>
<!--Non functional Reuiqrements start-->
<!--
<h1>6. Other Requirements</h1>
<p><Define any other requirements not covered elsewhere in the SRS. This might include database requirements, internationalization requirements, legal requirements, reuse objectives for the project, and so on. Add any new sections that are pertinent to the project.></p>
<p>Appendix A: Glossary</p>
<p><Define all the terms necessary to properly interpret the SRS, including acronyms and abbreviations. You may wish to build a separate glossary that spans multiple projects or the entire organization, and just include terms specific to a single project in each SRS.></p>
<p>Appendix B: Analysis Models</p>
<p><Optionally, include any pertinent analysis models, such as data flow diagrams, class diagrams, state-transition diagrams, or entity-relationship diagrams.></p>
<p>Appendix C: To Be Determined List</p>
<p><Collect a numbered list of the TBD (to be determined) references that remain in the SRS so they can be tracked to closure.></p>
-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">var scrolltotop={setting:{startline:100,scrollto:0,scrollduration:1e3,fadeduration:[500,100]},controlHTML:'<img src="https://i1155.photobucket.com/albums/p559/scrolltotop/arrow19.png" />',controlattrs:{offsetx:5,offsety:5},anchorkeyword:"#top",state:{isvisible:!1,shouldvisible:!1},scrollup:function(){this.cssfixedsupport||this.$control.css({opacity:0});var t=isNaN(this.setting.scrollto)?this.setting.scrollto:parseInt(this.setting.scrollto);t="string"==typeof t&&1==jQuery("#"+t).length?jQuery("#"+t).offset().top:0,this.$body.animate({scrollTop:t},this.setting.scrollduration)},keepfixed:function(){var t=jQuery(window),o=t.scrollLeft()+t.width()-this.$control.width()-this.controlattrs.offsetx,s=t.scrollTop()+t.height()-this.$control.height()-this.controlattrs.offsety;this.$control.css({left:o+"px",top:s+"px"})},togglecontrol:function(){var t=jQuery(window).scrollTop();this.cssfixedsupport||this.keepfixed(),this.state.shouldvisible=t>=this.setting.startline?!0:!1,this.state.shouldvisible&&!this.state.isvisible?(this.$control.stop().animate({opacity:1},this.setting.fadeduration[0]),this.state.isvisible=!0):0==this.state.shouldvisible&&this.state.isvisible&&(this.$control.stop().animate({opacity:0},this.setting.fadeduration[1]),this.state.isvisible=!1)},init:function(){jQuery(document).ready(function(t){var o=scrolltotop,s=document.all;o.cssfixedsupport=!s||s&&"CSS1Compat"==document.compatMode&&window.XMLHttpRequest,o.$body=t(window.opera?"CSS1Compat"==document.compatMode?"html":"body":"html,body"),o.$control=t('<div id="topcontrol">'+o.controlHTML+"</div>").css({position:o.cssfixedsupport?"fixed":"absolute",bottom:o.controlattrs.offsety,right:o.controlattrs.offsetx,opacity:0,cursor:"pointer"}).attr({title:"Scroll to Top"}).click(function(){return o.scrollup(),!1}).appendTo("body"),document.all&&!window.XMLHttpRequest&&""!=o.$control.text()&&o.$control.css({width:o.$control.width()}),o.togglecontrol(),t('a[href="'+o.anchorkeyword+'"]').click(function(){return o.scrollup(),!1}),t(window).bind("scroll resize",function(t){o.togglecontrol()})})}};scrolltotop.init();</script>
<noscript>Not seeing a <a href="https://www.scrolltotop.com/">Scroll to Top Button</a>? Go to our FAQ page for more info.</noscript>
</body>
</html>