├── .dockerignore
├── Dockerfile
├── Entity
├── entities.go
├── mock_entities.go
├── notification.go
└── user.go
├── README.md
├── UI
├── assets
│ ├── bootstrap
│ │ ├── css
│ │ │ └── bootstrap.min.css
│ │ └── js
│ │ │ └── bootstrap.min.js
│ ├── css
│ │ ├── admin_postnotification.css
│ │ ├── bootstrap.min.css
│ │ ├── dashboard.css
│ │ └── login_styles.css
│ ├── img
│ │ └── all_bg.jpg
│ ├── js
│ │ ├── bootstrap.min.js
│ │ └── jquery.slim.js
│ └── user_imgs
│ │ ├── photo_2019-12-28_09-08-42.jpg
│ │ └── photo_2020-01-01_15-26-29.jpg
└── templates
│ ├── admin.account.new.html
│ ├── admin.case.update.html
│ ├── admin.cases.html
│ ├── admin.court.new.html
│ ├── admin.created.user.html
│ ├── admin.home.html
│ ├── admin.navbar.html
│ ├── admin.newcase.html
│ ├── admin.newjudge.html
│ ├── admin.newopp.html
│ ├── admin.notifications.html
│ ├── admin.notifications.postnotification.html
│ ├── admin.notifications.update.html
│ ├── admin.report.case.html
│ ├── admin.report.court.html
│ ├── admin.report.html
│ ├── adminSearch.html
│ ├── allHeader.html
│ ├── appeal.html
│ ├── caseSearchResult.html
│ ├── caseSearchResultSingle.html
│ ├── footer.html
│ ├── index.html
│ ├── judge.case.close.html
│ ├── judge.home.html
│ ├── judge.html
│ ├── judge.notifications.html
│ ├── judgeSearchResult.html
│ ├── judgeSearchResultSingle.html
│ ├── login.html
│ ├── navbar.html
│ ├── opponent.home.html
│ ├── opponent.notifications.html
│ ├── opponent.notifications.update.html
│ └── user.changepwd.html
├── appealUse
├── repository.go
├── repository
│ └── appeal_repo.go
├── service.go
└── service
│ └── appeal_service.go
├── caseUse
├── repository.go
├── repository
│ ├── admin_court_repo.go
│ ├── case_repo.go
│ ├── case_search.go
│ ├── case_search_service.go
│ ├── judge_repo.go
│ ├── login_repo.go
│ ├── mock_case_repo.go
│ ├── opp_repo.go
│ └── session_repo.go
├── service.go
└── service
│ ├── admin_court_service.go
│ ├── case_service.go
│ ├── judge_service.go
│ ├── login_service.go
│ ├── opp_service.go
│ └── session_serv.go
├── court
├── Dockerfile
├── admin_case_handler_test.go
├── admin_notification_test.go
├── app.yaml
├── caseSearch_handler_test.go
├── handler
│ ├── admin_court_handler.go
│ ├── admin_judge_handler.go
│ ├── admin_opponent_handler.go
│ ├── admin_report_handler.go
│ ├── case_handler.go
│ ├── case_search_handler.go
│ ├── case_search_handler_test.go
│ ├── judge_notification_handler.go
│ ├── judge_search_handler.go
│ ├── login_handler.go
│ ├── notification_handler.go
│ ├── opp_appeal_hundler.go
│ └── opp_judge_notification_handler.go
├── judgeSearch_handler_test.go
└── main.go
├── docker-compose.debug.yml
├── docker-compose.yml
├── form
├── data.go
└── errors.go
├── notificationUse
├── repository.go
├── repository
│ ├── mock_notification_repository.go
│ └── notification_repo.go
├── service.go
└── service
│ └── notification_service.go
├── reportUse
├── repository.go
├── repository
│ └── report_repo.go
├── service.go
└── service
│ └── report_service.go
├── rtoken
├── manage_token.go
└── random_string.go
├── searchUse
├── repository.go
├── repository
│ ├── case_search.go
│ ├── judge_search.go
│ ├── mock_case_search_repository.go
│ └── mock_judge_search_repository.go
├── service.go
└── service
│ ├── case_search_service.go
│ └── judge_search_service.go
└── session
└── manage_session.go
/.dockerignore:
--------------------------------------------------------------------------------
1 | **/.classpath
2 | **/.dockerignore
3 | **/.env
4 | **/.git
5 | **/.gitignore
6 | **/.project
7 | **/.settings
8 | **/.toolstarget
9 | **/.vs
10 | **/.vscode
11 | **/*.*proj.user
12 | **/*.dbmdl
13 | **/*.jfm
14 | **/azds.yaml
15 | **/bin
16 | **/charts
17 | **/docker-compose*
18 | **/Dockerfile*
19 | **/node_modules
20 | **/npm-debug.log
21 | **/obj
22 | **/secrets.dev.yaml
23 | **/values.dev.yaml
24 | README.md
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 |
2 | #build stage
3 | FROM golang:alpine AS builder
4 | WORKDIR /go/src/app
5 | COPY . .
6 | RUN apk add --no-cache git
7 | RUN go get -d -v ./...
8 | RUN go install -v ./...
9 |
10 | #final stage
11 | FROM alpine:latest
12 | RUN apk --no-cache add ca-certificates
13 | COPY --from=builder /go/bin/app /app
14 | ENTRYPOINT ./app
15 | LABEL Name=court-case-management-system Version=0.0.1
16 | EXPOSE 8181
17 |
--------------------------------------------------------------------------------
/Entity/entities.go:
--------------------------------------------------------------------------------
1 | package entity
2 |
3 | import (
4 | "time"
5 |
6 | "github.com/Surafeljava/gorm"
7 | )
8 |
9 | type Admin struct {
10 | ID uint
11 | AdminId string `gorm:"type:varchar(50);not null"`
12 | AdminPwd string `gorm:"type:varchar(50);not null"`
13 | }
14 |
15 | type UserType struct {
16 | gorm.Model
17 | UsrId string
18 | UsrPwd string
19 | }
20 |
21 | type Case struct {
22 | ID uint
23 | CaseNum string `gorm:"type:varchar(50);not null"`
24 | CaseTitle string `gorm:"type:varchar(50);not null"`
25 | CaseDesc string `gorm:"type:varchar(50);not null"`
26 | CaseStatus string `gorm:"type:varchar(50);not null"`
27 | CaseType string `gorm:"type:varchar(50);not null"`
28 | CaseCreation time.Time
29 | CaseCourtDate time.Time
30 | CaseJudge string `gorm:"type:varchar(50);not null"`
31 | }
32 |
33 | type CaseInfo struct {
34 | CaseTitle string `json:"case_title" gorm:"type:varchar(255)"`
35 | CaseStatus string `json:"case_status" gorm:"type:varchar(255)"`
36 | CourtDate time.Time `json:"court_date" gorm:"type:varchar(255)"`
37 | }
38 |
39 | type Relation struct {
40 | ID uint
41 | CaseNum string `gorm:"type:varchar(255);not null"`
42 | PlId string `gorm:"type:varchar(255);not null"`
43 | AcId string `gorm:"type:varchar(255);not null"`
44 | //JuId string `gorm:"type:varchar(255);not null"`
45 | }
46 |
47 | type Decision struct {
48 | ID uint
49 | CaseNum string `gorm:"type:varchar(255);not null"`
50 | DecisionDate time.Time
51 | Decision string `gorm:"type:varchar(255);not null"`
52 | DecisionDesc string `gorm:"type:varchar(255);not null"`
53 | }
54 |
55 | type Witness struct {
56 | ID uint
57 | CaseNum string `gorm:"type:varchar(255);not null"`
58 | WitnessDoc string `gorm:"type:varchar(255);not null"`
59 | WitnessType string `gorm:"type:varchar(255);not null"`
60 | }
61 |
62 | type Judge struct {
63 | ID uint
64 | JudgeId string `gorm:"type:varchar(50);not null"`
65 | JudgePwd string `gorm:"type:varchar(50);not null"`
66 | JudgeName string `gorm:"type:varchar(50);not null"`
67 | JudgeGender string `gorm:"type:varchar(50);not null"`
68 | JudgeAddress string `gorm:"type:varchar(50);not null"`
69 | JudgePhone string `gorm:"type:varchar(50);not null"`
70 | JudgeType string `gorm:"type:varchar(50);not null"`
71 | JudgePhoto string `gorm:"type:varchar(50);not null"`
72 | }
73 |
74 | type Notification struct {
75 | ID uint
76 | NotDescription string `gorm:"type:varchar(255);not null"`
77 | NotTitle string `gorm:"type:varchar(255);not null"`
78 | NotLevel string `gorm:"type:varchar(50);not null"`
79 | NotDate time.Time
80 | }
81 |
82 | type Opponent struct {
83 | ID uint
84 | OppId string `gorm:"type:varchar(50);not null"`
85 | OppPwd string `gorm:"type:varchar(50);not null"`
86 | OppType string `gorm:"type:varchar(50);not null"`
87 | OppName string `gorm:"type:varchar(50);not null"`
88 | OppGender string `gorm:"type:varchar(50);not null"`
89 | OppBD time.Time
90 | OppAddress string `gorm:"type:varchar(50);not null"`
91 | OppPhone string `gorm:"type:varchar(50);not null"`
92 | OppPhoto string `gorm:"type:varchar(50);not null"`
93 | }
94 |
95 | type SuccessMessage struct {
96 | Status string
97 | Message string
98 | }
99 |
100 | //TODO: unfinished session work...
101 | type Session struct {
102 | ID uint
103 | UUID string `gorm:"type:varchar(255);not null"`
104 | Expires int64 `gorm:"type:varchar(255);not null"`
105 | SigningKey []byte `gorm:"type:varchar(255);not null"`
106 | }
107 |
108 | type Messg struct {
109 | UserID string
110 | UserPwd string
111 | UserName string
112 | AddtionalMsg string
113 | }
114 |
115 | type Court struct {
116 | ID uint
117 | CourtName string `gorm:"type:varchar(255);not null"`
118 | CourtLevel string `gorm:"type:varchar(255);not null"`
119 | CourtAddress string `gorm:"type:varchar(255);not null"`
120 | CourtPhone string `gorm:"type:varchar(255);not null"`
121 | }
122 |
123 | type AppealForm struct {
124 | CaseNum string
125 | CaseCreationDate time.Time
126 | CaseTitle string
127 | CaseDesc string
128 | OppName string
129 | OppGender string
130 | OppAddress string
131 | OppPhone string
132 | WitDocm string
133 | WitTy string
134 | Decision string
135 | DecDate time.Time
136 | DacDesc string
137 | }
138 |
--------------------------------------------------------------------------------
/Entity/mock_entities.go:
--------------------------------------------------------------------------------
1 | package entity
2 |
3 | import (
4 | "time"
5 | )
6 |
7 | // CaseMock Food Case
8 | var CaseMock = Case{
9 | ID: 1,
10 | CaseNum: "CS1",
11 | CaseTitle: "Murder",
12 | CaseDesc: "Killing two people",
13 | CaseStatus: "Open",
14 | CaseType: "criminal",
15 | CaseCreation: time.Time{},
16 | CaseCourtDate: time.Time{},
17 | CaseJudge: "JD1",
18 | }
19 |
20 | // AdminMock mocks Admin
21 | var AdminMock = Admin{
22 | ID: 1,
23 | AdminId: "AD1",
24 | AdminPwd: "1234",
25 | }
26 |
27 | // UserTypeMock mocks Decision
28 | var UserTypeMock = UserType{
29 | UsrId: "US1",
30 | UsrPwd: "1234",
31 | }
32 |
33 | // RelationMock mocks Decision
34 | var RelationMock = Relation{
35 | ID: 1,
36 | CaseNum: "CS1",
37 | PlId: "PL1",
38 | AcId: "AC1",
39 | }
40 |
41 | // DecisionMock mocks Decision
42 | var DecisionMock = Decision{
43 | ID: 1,
44 | CaseNum: "CS1",
45 | DecisionDate: time.Time{},
46 | Decision: "Must be in jail",
47 | DecisionDesc: "document",
48 | }
49 |
50 | // WitnessMock mocks Witness
51 | var WitnessMock = Witness{
52 | ID: 1,
53 | CaseNum: "CS1",
54 | WitnessDoc: "Duresa",
55 | WitnessType: "person",
56 | }
57 |
58 | // JudgeMock mocks Judge
59 | var JudgeMock = Judge{
60 | ID: 1,
61 | JudgeId: "JU1",
62 | JudgePwd: "1234",
63 | JudgeName: "Tesfaye",
64 | JudgeGender: "male",
65 | JudgeAddress: "Addis Ababa",
66 | JudgePhone: "0903054480",
67 | JudgeType: "criminal",
68 | JudgePhoto: "photo.png",
69 | }
70 |
71 | // NotificationMock mocks Notification
72 | var NotificationMock = Notification{
73 | ID: 1,
74 | NotDescription: "Team meeting",
75 | NotTitle: "Notice",
76 | NotLevel: "all",
77 | NotDate: time.Time{},
78 | }
79 |
80 | // OpponentMock mocks Opponent
81 | var OpponentMock = Opponent{
82 | ID: 1,
83 | OppId: "OP1",
84 | OppPwd: "1234",
85 | OppType: "criminal",
86 | OppName: "Haylu",
87 | OppGender: "Male",
88 | OppBD: time.Time{},
89 | OppAddress: "Addis Ababa",
90 | OppPhone: "0909090909",
91 | OppPhoto: "photoOpponent",
92 | }
93 |
94 | // SuccessMessageMock mocks SuccessMessage
95 | var SuccessMessageMock = SuccessMessage{
96 | Status: "OK",
97 | Message: "messaage",
98 | }
99 |
100 | // SessionMock mocks Session
101 | var SessionMock = Session{
102 | ID: 1,
103 | UUID: "AD1",
104 | Expires: 30,
105 | SigningKey: []byte{},
106 | }
107 |
--------------------------------------------------------------------------------
/Entity/notification.go:
--------------------------------------------------------------------------------
1 | package entity
2 |
3 | import "time"
4 |
5 | //Notification struct
6 | type NotificationTest struct {
7 | NotfDescription string
8 | NotfTitle string
9 | NotfLevel string
10 | NotfDate time.Time
11 | }
12 |
--------------------------------------------------------------------------------
/Entity/user.go:
--------------------------------------------------------------------------------
1 | package entity
2 |
3 | import "github.com/Surafeljava/gorm"
4 |
5 | type User struct {
6 | gorm.Model
7 | ID int
8 | userID string
9 | userPwd string
10 | }
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Court Case Management System (CCMS)
2 |
3 | A web application for digitizing court workflows with role-based access for **Administrator**, **Judge**, **Plaintiff**, and **Accused**. Core features include case registration/assignment, notifications, appeals, search, and reporting. ([GitHub][1])
4 |
5 | ## Table of Contents
6 |
7 | * [Overview](#overview)
8 | * [Architecture](#architecture)
9 | * [Features](#features)
10 | * [Tech Stack](#tech-stack)
11 | * [Getting Started](#getting-started)
12 |
13 | * [Option A: Run with Docker (recommended)](#option-a-run-with-docker-recommended)
14 | * [Option B: Local Go build (advanced)](#option-b-local-go-build-advanced)
15 | * [Project Layout](#project-layout)
16 | * [Configuration](#configuration)
17 | * [Development](#development)
18 | * [Testing](#testing)
19 | * [Roadmap / Ideas](#roadmap--ideas)
20 | * [License](#license)
21 |
22 | ---
23 |
24 | ## Overview
25 |
26 | The system replaces manual, paper-based court processes with a unified web app. After authentication, users are routed to role-appropriate dashboards:
27 |
28 | * **Admin:** manage judges, register cases (plaintiff/accused), assign judges, post notifications, manage waiting lists, review reports.
29 | * **Judge:** view notifications and assigned cases, set appointments, close cases with decisions, attach witness documents, view progress reports.
30 | * **Plaintiff / Accused:** track case status, submit appeals, view notifications. ([GitHub][1])
31 |
32 | ---
33 |
34 | ## Architecture
35 |
36 | **Monorepo** with a Go backend and a static JS/HTML UI:
37 |
38 | * **Backend:** Go services (Go modules) that implement domain logic (cases, notifications, appeals, search, reports, sessions). The repository is a valid Go module (contains `go.mod`). ([Go Packages][2])
39 | * **Frontend:** Static HTML/JS under `UI/` served by the backend (no separate Node build step observed). ([GitHub][1])
40 | * **Containerization:** Multi-stage Docker build producing a tiny Alpine image that runs the compiled server and exposes port **8181**. ([GitHub][3])
41 |
42 | > Runtime port: the Dockerfile exposes **8181**; map this to a host port when running. ([GitHub][3])
43 |
44 | ---
45 |
46 | ## Features
47 |
48 | * Case lifecycle: register, assign judge, update status
49 | * Role-based notifications
50 | * Appeals workflow
51 | * Search across cases
52 | * Statistics & reports ([GitHub][1])
53 |
54 | ---
55 |
56 | ## Tech Stack
57 |
58 | * **Language:** Go (backend), JavaScript + HTML (frontend)
59 | * **Repo language mix:** \~**54.8% JS**, **30.9% Go**, **13.2% HTML** (GitHub analysis). ([GitHub][1])
60 | * **Container:** Docker (multi-stage build; final image based on Alpine, `ENTRYPOINT ./app`, `EXPOSE 8181`). ([GitHub][3])
61 |
62 | ---
63 |
64 | ## Getting Started
65 |
66 | ### Prerequisites
67 |
68 | * **Docker** 20+ (if you use the Docker path)
69 | * or **Go** 1.18+ (module-aware build), if building locally without Docker (see advanced path) ([Go Packages][2])
70 |
71 | > **Note:** The repo includes `docker-compose.yml` files at the root. If you prefer Compose, you can run via Compose as well. (Files are present in the root listing.) ([GitHub][1])
72 |
73 | ---
74 |
75 | ### Option A: Run with Docker (recommended)
76 |
77 | 1. **Clone**
78 |
79 | ```bash
80 | git clone https://github.com/Surafeljava/Court-Case-Management-System.git
81 | cd Court-Case-Management-System
82 | ```
83 |
84 | 2. **Build**
85 |
86 | ```bash
87 | docker build -t ccms:latest .
88 | ```
89 |
90 | > This uses the multi-stage Dockerfile to compile the Go app and copy the binary to a minimal Alpine image. ([GitHub][3])
91 |
92 | 3. **Run**
93 |
94 | ```bash
95 | docker run --rm -p 8181:8181 ccms:latest
96 | ```
97 |
98 | 4. **Open the app**
99 | Visit: `http://localhost:8181`
100 |
101 | > If you prefer Compose and your environment has Docker Compose v2+, you can try:
102 |
103 | ```bash
104 | docker compose up --build
105 | ```
106 |
107 | (Compose files exist in the repo root.) ([GitHub][1])
108 |
109 | ---
110 |
111 | ### Option B: Local Go build (advanced)
112 |
113 | > This project uses Go modules; ensure you have a recent Go toolchain installed. ([Go Packages][2])
114 |
115 | ```bash
116 | # from repo root
117 | go mod download
118 | go install ./...
119 | ```
120 |
121 | That produces a binary (per the Dockerfile it ends up as `app` in `/go/bin` inside the builder image). Locally, you can run the compiled binary or `go run` the main package if you prefer. If the server uses port 8181 (as in Docker), open `http://localhost:8181` in your browser. ([GitHub][3])
122 |
123 | ---
124 |
125 | ## Project Layout
126 |
127 | Root folders (top-level) you’ll interact with most: ([GitHub][1])
128 |
129 | ```
130 | Entity/ # Domain entities (case, user, judge, plaintiff, accused, etc.)
131 | UI/ # Static HTML/JS assets for the web UI
132 | appealUse/ # Appeal use-cases / business logic
133 | caseUse/ # Case registration/assignment/update logic
134 | court/ # HTTP handlers / routing / server (and tests)
135 | form/ # Form DTOs / request parsing helpers
136 | notificationUse/ # Notification workflows
137 | reportUse/ # Reporting workflows / stats
138 | rtoken/ # Token helpers (e.g., reset/registration tokens, etc.)
139 | searchUse/ # Search use-cases / indexing helpers
140 | session/ # Session/auth helpers (login/logout, role checks)
141 | Dockerfile
142 | docker-compose.yml
143 | docker-compose.debug.yml
144 | README.md
145 | ```
146 |
147 | > The names above reflect the folder list in the repo root; internal package boundaries follow the “use-case” naming convention (`*Use`). ([GitHub][1])
148 |
149 | ---
150 |
151 | ## Configuration
152 |
153 | The app runs with sensible defaults in Docker (no env required in the Dockerfile). If you need configuration:
154 |
155 | * **Port:** container exposes **8181** (map to the host with `-p 8181:8181`). ([GitHub][3])
156 | * **Environment variables:** none are explicitly referenced in the Dockerfile; check the `court/` package for server settings (e.g., address/port) if you want to customize. ([GitHub][3])
157 |
158 | > If your deployment requires persistence (DB/files), add the corresponding env vars/volumes to `docker run` or `docker-compose.yml`. (The repo lists Compose files; customize as needed.) ([GitHub][1])
159 |
160 | ---
161 |
162 | ## Development
163 |
164 | * **Hot reload:** Not configured by default. Run with `go run` or rebuild the Docker image when you change server code.
165 | * **Frontend:** The `UI/` directory contains static HTML/JS; edit and refresh your browser to see changes. ([GitHub][1])
166 | * **Code organization:** Business logic is grouped by “use-case” directories (`caseUse`, `appealUse`, etc.), with domain structures in `Entity/`. HTTP handlers/routing live under `court/`. ([GitHub][1])
167 |
168 | ---
169 |
170 | ## Testing
171 |
172 | The `court/` directory includes Go test files (e.g., handler tests). To run tests:
173 |
174 | ```bash
175 | go test ./...
176 | ```
177 |
178 | (There’s at least one test file under `court/` visible from the listing.) ([GitHub][4])
179 |
180 | [1]: https://github.com/Surafeljava/Court-Case-Management-System "GitHub - Surafeljava/Court-Case-Management-System"
181 | [2]: https://pkg.go.dev/github.com/surafeljava/court-case-management-system?utm_source=chatgpt.com "court-case-management-system module - github.com/surafeljava/court-case ..."
182 | [3]: https://github.com/Surafeljava/Court-Case-Management-System/blob/master/Dockerfile?utm_source=chatgpt.com "Court-Case-Management-System/Dockerfile at master - GitHub"
183 | [4]: https://github.com/Surafeljava/Court-Case-Management-System/blob/master/court/admin_case_handler_test.go?utm_source=chatgpt.com "Court-Case-Management-System/court/admin_case_handler_test.go at master ..."
184 | [5]: https://github.com/Surafeljava/Court-Case-Management-System/releases?utm_source=chatgpt.com "Releases: Surafeljava/Court-Case-Management-System - GitHub"
185 |
--------------------------------------------------------------------------------
/UI/assets/css/admin_postnotification.css:
--------------------------------------------------------------------------------
1 | *{
2 | margin: 0
3 | }
4 |
5 | [type="date"] {
6 | background:#fff /*url(https://cdn1.iconfinder.com/data/icons/cc_mono_icon_set/blacks/16x16/calendar_2.png) */ 97% 50% no-repeat ;
7 | }
8 | [type="date"]::-webkit-inner-spin-button {
9 | display: none;
10 | }
11 | [type="date"]::-webkit-calendar-picker-indicator {
12 | opacity: 0;
13 | }
14 |
15 | body{
16 | background-image: url("../images/court_img_2.jpg");
17 | background-size: cover;
18 | }
19 |
20 | input{
21 | margin-top: 10px;
22 | width: 100px;
23 | }
24 |
25 | .date_picker {
26 | border: 1px solid #c4c4c4;
27 | border-radius: 5px;
28 | background-color: #fff;
29 | padding: 3px 5px;
30 | box-shadow: inset 0 3px 6px rgba(0,0,0,0.1);
31 | width: 250px;
32 | margin: auto;
33 | }
34 |
35 | .btn{
36 | height: 40px;
37 | width: 40%;
38 | margin-left: 3%;
39 | letter-spacing: 1px;
40 | background-color: #313131;
41 | color: #eadca6;
42 | outline:none;
43 | -webkit-transition-duration: 0.6s;
44 | transition-duration: 0.6s;
45 | transition: 0.6s;
46 | }
47 |
48 | .btn:hover{
49 | width: 40%;
50 | margin-left: 3%;
51 | border-radius: 4px;
52 | letter-spacing: 2px;
53 | font-weight: bold;
54 | color: #ffffff;
55 | background-color: #ca3e47;
56 | box-shadow: 0 0 4px black;
57 | }
58 |
59 | .wrapper{
60 | width: 100% !important;
61 | }
62 |
63 | select{
64 | width: 50%;
65 | height: 30px;
66 | margin-bottom: 10px;
67 | margin-top: 10px;
68 | }
69 |
70 | .inp{
71 | width: 80%;
72 | height: 25px;
73 | margin-bottom: 10px;
74 | }
75 |
76 | .my_form{
77 | width: 50% !important;
78 | margin:auto !important;
79 | margin-top: 50px !important;
80 | margin-bottom: 30px !important;
81 | padding: 50px 50px !important;
82 | border-radius: 10px !important;
83 | background-color: #ffffffcc !important;
84 | box-shadow: 1px 1.5px 3px gray !important;
85 | }
86 |
--------------------------------------------------------------------------------
/UI/assets/css/dashboard.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-size: .875rem;
3 | }
4 |
5 | .feather {
6 | width: 16px;
7 | height: 16px;
8 | vertical-align: text-bottom;
9 | }
10 |
11 | /*
12 | * Sidebar
13 | */
14 |
15 | .sidebar {
16 | position: fixed;
17 | top: 0;
18 | bottom: 0;
19 | left: 0;
20 | z-index: 100; /* Behind the navbar */
21 | padding: 48px 0 0; /* Height of navbar */
22 | box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
23 | }
24 |
25 | .sidebar-sticky {
26 | position: relative;
27 | top: 0;
28 | height: calc(100vh - 48px);
29 | padding-top: .5rem;
30 | overflow-x: hidden;
31 | overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
32 | }
33 |
34 | @supports ((position: -webkit-sticky) or (position: sticky)) {
35 | .sidebar-sticky {
36 | position: -webkit-sticky;
37 | position: sticky;
38 | }
39 | }
40 |
41 | .sidebar .nav-link {
42 | font-weight: 500;
43 | color: #333;
44 | }
45 |
46 | .sidebar .nav-link .feather {
47 | margin-right: 4px;
48 | color: #999;
49 | }
50 |
51 | .sidebar .nav-link.active {
52 | color: #007bff;
53 | }
54 |
55 | .sidebar .nav-link:hover .feather,
56 | .sidebar .nav-link.active .feather {
57 | color: inherit;
58 | }
59 |
60 | .sidebar-heading {
61 | font-size: .75rem;
62 | text-transform: uppercase;
63 | }
64 |
65 | /*
66 | * Content
67 | */
68 |
69 | [role="main"] {
70 | padding-top: 133px; /* Space for fixed navbar */
71 | }
72 |
73 | @media (min-width: 768px) {
74 | [role="main"] {
75 | padding-top: 48px; /* Space for fixed navbar */
76 | }
77 | }
78 |
79 | /*
80 | * Navbar
81 | */
82 |
83 | .navbar-brand {
84 | padding-top: .75rem;
85 | padding-bottom: .75rem;
86 | font-size: 1rem;
87 | background-color: rgba(0, 0, 0, .25);
88 | box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25);
89 | }
90 |
91 | .navbar .form-control {
92 | padding: .75rem 1rem;
93 | border-width: 0;
94 | border-radius: 0;
95 | }
96 |
97 | .form-control-dark {
98 | color: #fff;
99 | background-color: rgba(255, 255, 255, .1);
100 | border-color: rgba(255, 255, 255, .1);
101 | }
102 |
103 | .form-control-dark:focus {
104 | border-color: transparent;
105 | box-shadow: 0 0 0 3px rgba(255, 255, 255, .25);
106 | }
107 |
--------------------------------------------------------------------------------
/UI/assets/css/login_styles.css:
--------------------------------------------------------------------------------
1 | h1 {
2 | font-weight: 600;
3 | margin-top: 20px;
4 | }
5 |
6 | form {
7 | padding: 10px;
8 | }
9 |
10 | div {
11 | margin-left: 35%;
12 | width: 30%;
13 | }
14 |
15 | input.form-control {
16 | margin-bottom: 15px;
17 | height: 40px;
18 | font-weight: 500;
19 | }
20 |
21 | button.btn.btn-primary {
22 | width: 48.5%;
23 | height: 40px;
24 | margin-right: 1%;
25 | font-weight: 600;
26 | border: hidden;
27 | }
28 |
29 | button.btn.btn-default {
30 | width: 47.4%;
31 | margin-left: 10px;
32 | }
33 |
34 | button.btn.btn-warning {
35 | margin-left: 1%;
36 | width: 48.5%;
37 | height: 40px;
38 | font-weight: 600;
39 | border: hidden;
40 | }
--------------------------------------------------------------------------------
/UI/assets/img/all_bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Surafeljava/Court-Case-Management-System/4fddf2ed99c6d89a4f13d70b5ca5129455c14b04/UI/assets/img/all_bg.jpg
--------------------------------------------------------------------------------
/UI/assets/user_imgs/photo_2019-12-28_09-08-42.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Surafeljava/Court-Case-Management-System/4fddf2ed99c6d89a4f13d70b5ca5129455c14b04/UI/assets/user_imgs/photo_2019-12-28_09-08-42.jpg
--------------------------------------------------------------------------------
/UI/assets/user_imgs/photo_2020-01-01_15-26-29.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Surafeljava/Court-Case-Management-System/4fddf2ed99c6d89a4f13d70b5ca5129455c14b04/UI/assets/user_imgs/photo_2020-01-01_15-26-29.jpg
--------------------------------------------------------------------------------
/UI/templates/admin.account.new.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.account.new.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.account.new.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.account.new.content" }}
10 |
26 |
27 |
28 |
Create Admin Account
29 |
30 |
31 |
51 |
52 |
53 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.case.update.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.case.update.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.case.update.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.case.update.content" }}
10 |
26 |
27 |
28 |
30 |
Update Case
31 |
32 |
33 |
71 |
72 |
73 |
74 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.cases.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.cases.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.cases.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.cases.content" }}
10 |
11 |
12 |
13 |
Admin View Cases
14 |
15 |
16 |
17 | ID |
18 | Case Title |
19 | Case Description |
20 | Update Case |
21 | Add Opponent |
22 | Delete Case |
23 |
24 |
25 |
26 | {{range .}}
27 |
28 | {{ .ID }} |
29 | {{ .CaseTitle }} |
30 | {{ .CaseDesc }} |
31 | Update Case |
32 | Add Plaintiff |
33 | Add Accused |
34 | Delete |
35 |
36 | {{end}}
37 |
38 |
39 |
40 |
41 |
42 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.court.new.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.court.new.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.court.new.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.court.new.content" }}
10 |
26 |
27 |
28 |
Create Court
29 |
30 |
31 |
60 |
61 |
62 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.created.user.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.created.user.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.created.user.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.created.user.content" }}
10 |
11 |
12 |
13 |
15 |
New Created User Information
16 |
17 |
18 |
19 |
User Name: {{ .UserName }}
20 |
User ID: {{ .UserID }}
21 |
22 |
User Password: {{ .UserPwd }}
23 |
24 |
25 |
26 |
27 |
28 |
29 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.home.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.home.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.home.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.home.content" }}
10 |
11 |
12 |
14 |
Admin Home
15 |
16 | ID: {{ . }}
17 |
18 |
32 |
33 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | {{ end }}
54 |
--------------------------------------------------------------------------------
/UI/templates/admin.navbar.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.navbar" }}
2 |
3 |
4 |
5 |
6 |
7 |
8 | Admin Page
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.newcase.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.newcase.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.newcase.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.newcase.content" }}
10 |
26 |
27 |
28 |
30 |
Create New Case
31 |
32 |
33 |
70 |
71 |
72 |
73 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.newjudge.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.newjudge.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.newjudge.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.newjudge.content" }}
10 |
26 |
27 |
28 |
30 |
Create New Judge
31 |
32 |
33 |
73 |
74 |
75 |
76 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.newopp.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.newopp.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.newopp.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.newopp.content" }}
10 |
26 |
27 |
28 |
30 |
Create New Opponent
31 |
32 |
33 |
81 |
82 |
83 |
84 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.notifications.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.notifications.layout" }}
2 | {{ template "navbar" . }}
3 | {{ template "admin.notifications.content" . }}
4 | {{ template "footer" . }}
5 | {{ end }}
6 |
7 | {{ define "admin.notifications.content"}}
8 |
9 |
11 |
Notifications
12 |
13 |
16 |
17 |
18 |
19 | Role Number |
20 | Notf_Title |
21 | Notf_Description |
22 | Notf_Level |
23 | Notf_Date |
24 | |
25 | |
26 |
27 |
28 |
29 | {{ range . }}
30 |
31 | {{ .ID }} |
32 | {{ .NotTitle }} |
33 | {{ .NotDescription}} |
34 | {{ .NotLevel}} |
35 | {{ .NotDate}} |
36 |
37 | Update |
38 | Delete | ------->
39 |
40 | {{ end }}
41 |
42 |
43 |
44 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.notifications.postnotification.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.notifications.postnotification.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.notifications.postnotification.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.notifications.postnotification.content" }}
10 |
11 |
12 |
13 |
14 |
15 |
16 | Post Notification Page
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
39 |
40 |
41 |
42 |
43 | {{ end }}
44 |
--------------------------------------------------------------------------------
/UI/templates/admin.notifications.update.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.notifications.update.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.notifications.update.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.notifications.update.content" }}
10 |
11 |
Update notification
12 |
13 |
29 |
30 |
31 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/admin.report.case.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.case.report.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.case.report.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.case.report.content" }}
10 |
11 |
12 |
13 |
14 |
15 |
16 | Case Report
17 |
18 |
19 |
20 |
21 | Court Name
22 | court address
23 |
24 |
25 |
26 | Case Number |
27 | case number |
28 |
29 |
30 | Case Title |
31 | title about the case |
32 |
33 |
34 | Case Description |
35 | Description about the case |
36 |
37 |
38 | Case Status |
39 | the status of the case |
40 |
41 |
42 | Case Type |
43 | case type |
44 |
45 |
46 | Case Creation date |
47 | case creation date |
48 |
49 |
50 | Case Court date |
51 | case Court date |
52 |
53 |
54 | Case Judge |
55 | the judge who is assigned to handle the case |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | {{ end }}
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/UI/templates/admin.report.court.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.court.report.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.court.report.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.court.report.content" }}
10 |
11 |
12 |
13 |
14 |
15 |
16 | Court Report
17 |
18 |
19 |
20 |
21 | Court Name
22 | court address
23 |
24 |
25 |
26 | ID |
27 | Case Number |
28 | Case Title |
29 | Case Description |
30 | Case Status |
31 | Case type |
32 | Case creation date |
33 | Case Court date |
34 | Case Judge |
35 |
36 |
37 |
38 | {{range .}}
39 |
40 | {{ .ID }} |
41 | {{ .CaseNum }} |
42 | {{ .CaseTitle }} |
43 | {{ .CaseDesc }} |
44 | {{ .CaseStatus }} |
45 | {{ .CaseType }} |
46 | {{ .CaseCreationdate }} |
47 | {{ .CaseCourtdate }} |
48 | {{ .CaseJudge }} |
49 |
50 | {{end}}
51 |
52 |
53 |
54 |
55 | {{ end }}
56 |
57 |
--------------------------------------------------------------------------------
/UI/templates/admin.report.html:
--------------------------------------------------------------------------------
1 | {{ define "admin.report.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "admin.report.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "admin.report.content" }}
10 |
11 |
12 |
Court Statistics and Report
13 |
14 |
15 |
16 |
Number of All Cases in the Court: {{ .AllCases }}
17 |
Number of Closed Cases: {{ .ClosedCases }}
18 |
Number of Open Cases: {{ .OpenCases }}
19 |
20 |
Number of Judges in the Court: {{ .AllJudges }}
21 |
Number of Criminal Judges: {{ .CriminalJudges }}
22 |
Number of Civil Judges: {{ .CivilJudges }}
23 |
24 |
Number of Notifications Posted: {{ .AllNotifications }}
25 |
26 |
27 |
28 |
29 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/adminSearch.html:
--------------------------------------------------------------------------------
1 | {{ define "adminSearch.layout" }}
2 | {{ template "allheader.navbar" . }}
3 | {{ template "adminSearch.content" . }}
4 | {{ template "footer" . }}
5 |
6 | {{ end }}
7 |
8 | {{ define "adminSearch.content" }}
9 |
10 |
SEARCH JUDGE BY ID
11 |
16 | ALL Judges
17 |
20 | SEARCH CASE BY ID
21 |
26 | ALL CASE
27 |
30 |
31 |
32 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/allHeader.html:
--------------------------------------------------------------------------------
1 | {{ define "allheader.navbar" }}
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Admin Page
10 |
11 |
12 |
13 |
16 |
17 |
18 |
19 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/appeal.html:
--------------------------------------------------------------------------------
1 | {{ define "appeal.layout" }}
2 | {{ template "allheader.navbar" . }}
3 | {{ template "appeal.content" . }}
4 | {{ template "footer" . }}
5 |
6 | {{ end }}
7 |
8 | {{ define "appeal.content" }}
9 |
10 |
11 |
12 |
13 |
14 | Appeal Document
15 |
16 |
17 |
18 |
19 | Admin Page
20 |
21 |
22 |
23 | Appeal Document
24 |
25 |
About The Case
26 |
27 |
28 |
29 | Case Number : |
30 | Case Title : |
31 | Case Describtion : |
32 | Case Creation Date : |
33 |
34 |
35 |
36 | {{ .CaseNum }} |
37 | {{ .CaseTitle }} |
38 | {{ .CaseDesc }} |
39 | {{ .CaseCreationDate }} |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
About The Opponent
48 |
49 |
50 |
51 | Opponent Name : |
52 | Gender : |
53 | Address : |
54 | Phone number : |
55 |
56 |
57 |
58 | {{ .OppName }} |
59 | {{ .OppGender }} |
60 | {{ .OppAddress }} |
61 | {{ .OppPhone }} |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
About The Witness
70 |
71 |
72 |
73 | Witness Document Name: |
74 | Witness Type : |
75 |
76 |
77 |
78 | {{ .WitDocm }} |
79 | {{ .WitTy }} |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
Decision Given
88 |
89 |
90 |
91 | Decision: |
92 | Decision Date : |
93 | Decision Describtion : |
94 |
95 |
96 |
97 | {{ .Decision }} |
98 | {{ .DecDate }} |
99 | {{ .DacDesc }} |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | {{ end }}
110 |
111 |
--------------------------------------------------------------------------------
/UI/templates/caseSearchResult.html:
--------------------------------------------------------------------------------
1 | {{ define "caseSearchResult.layout" }}
2 | {{ template "allheader.navbar" . }}
3 | {{ template "caseSearchResult.content" . }}
4 | {{ template "footer" . }}
5 | {{ end }}
6 | {{ define "caseSearchResult.content" }}
7 |
8 |
ALL CASES
9 |
10 |
11 |
12 | ID : |
13 | CaseNum : |
14 | CaseTitle : |
15 | CaseDesc : |
16 | CaseStatus : |
17 | CaseType : |
18 | CaseCreation : |
19 | CaseCourtDate : |
20 | CaseJudge : |
21 |
22 |
23 | {{ range . }}
24 |
25 | {{ .ID }} |
26 | {{ .CaseNum }} |
27 | {{ .CaseTitle }} |
28 | {{ .CaseDesc }} |
29 | {{ .CaseStatus }} |
30 | {{ .CaseType }} |
31 | {{ .CaseCreation }} |
32 | {{ .CaseCourtDate }} |
33 | {{ .CaseJudge }} |
34 |
35 | {{ end }}
36 |
37 |
38 |
39 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/caseSearchResultSingle.html:
--------------------------------------------------------------------------------
1 | {{ define "caseSearchResultSingle.layout" }}
2 | {{ template "allheader.navbar" . }}
3 | {{ template "caseSearchResultSingle.content" . }}
4 | {{ template "footer" . }}
5 | {{ end }}
6 | {{ define "caseSearchResultSingle.content" }}
7 |
8 |
CASE
9 |
10 |
11 |
12 | ID : |
13 | CaseNum : |
14 | CaseTitle : |
15 | CaseDesc : |
16 | CaseStatus : |
17 | CaseType : |
18 | CaseCreation : |
19 | CaseCourtDate : |
20 | CaseJudge : |
21 |
22 |
23 |
24 | {{ .ID }} |
25 | {{ .CaseNum }} |
26 | {{ .CaseTitle }} |
27 | {{ .CaseDesc }} |
28 | {{ .CaseStatus }} |
29 | {{ .CaseType }} |
30 | {{ .CaseCreation }} |
31 | {{ .CaseCourtDate }} |
32 | {{ .CaseJudge }} |
33 |
34 |
35 |
36 |
37 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/footer.html:
--------------------------------------------------------------------------------
1 | {{ define "footer" }}
2 |
11 |
12 |
13 |
14 |
15 |
16 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | login_page
8 |
9 |
10 |
11 |
12 |
13 | LOGIN Page
14 |
15 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/UI/templates/judge.case.close.html:
--------------------------------------------------------------------------------
1 | {{ define "judge.case.close.layout" }}
2 |
3 | {{ template "allheader.navbar" . }}
4 | {{ template "judge.case.close.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "judge.case.close.content" }}
10 |
26 |
27 |
28 |
30 |
Create New Case
31 |
32 |
33 |
60 |
61 |
62 |
63 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/judge.home.html:
--------------------------------------------------------------------------------
1 | {{ define "judge.home.layout" }}
2 |
3 | {{ template "allheader.navbar" . }}
4 | {{ template "judge.home.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "judge.home.content" }}
10 |
11 |
12 |
14 |
Judge Home
15 |
16 | ID: {{ .JudgeId }}
17 |
18 |
19 |

20 |
21 |
Welcome to the Judge Page
22 |
ID: {{ .JudgeId }}
23 |
24 |
25 |
26 |
38 |
39 |
40 |
41 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/judge.html:
--------------------------------------------------------------------------------
1 | {{ define "judge.layout" }}
2 |
3 |
4 |
5 |
6 |
7 |
8 | Document
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/judge.notifications.html:
--------------------------------------------------------------------------------
1 | {{ define "judge.notifications.layout" }}
2 | {{ template "allheader.navbar" . }}
3 | {{ template "judge.notifications.content" . }}
4 | {{ template "footer" . }}
5 | {{ end }}
6 |
7 | {{ define "judge.notifications.content"}}
8 |
9 |
11 |
Notifications
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | Role Number |
21 | Notf_Title |
22 | Notf_Description |
23 | Notf_Level |
24 | Notf_Date |
25 | |
26 | |
27 |
28 |
29 |
30 | {{ range . }}
31 |
32 | {{ .ID }} |
33 | {{ .NotTitle }} |
34 | {{ .NotDescription}} |
35 | {{ .NotLevel}} |
36 | {{ .NotDate}} |
37 |
38 | View |
39 | Delete | ------->
40 |
41 | {{ end }}
42 |
43 |
44 |
45 | {{ end }}
46 |
--------------------------------------------------------------------------------
/UI/templates/judgeSearchResult.html:
--------------------------------------------------------------------------------
1 | {{ define "judgeSearchResult.layout" }}
2 | {{ template "allheader.navbar" . }}
3 | {{ template "judgeSearchResult.content" . }}
4 | {{ template "footer" . }}
5 | {{ end }}
6 | {{ define "judgeSearchResult.content" }}
7 |
8 |
ALL JUDGES
9 |
10 |
11 |
12 | ID |
13 | JudgeId |
14 | JudgeName |
15 | JudgePwd |
16 | JudgeGender |
17 | JudgeAddress |
18 | JudgePhone |
19 | JudgeType |
20 | JudgePhoto |
21 |
22 |
23 | {{ range . }}
24 |
25 | {{ .ID }} |
26 | {{ .JudgeId }} |
27 | {{ .JudgeName }} |
28 | {{ .JudgePwd }} |
29 | {{ .JudgeGender }} |
30 | {{ .JudgeAddress }} |
31 | {{ .JudgePhone }} |
32 | {{ .JudgeType }} |
33 | {{ .JudgePhoto }} |
34 |
35 | {{ end }}
36 |
37 |
38 |
39 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/judgeSearchResultSingle.html:
--------------------------------------------------------------------------------
1 | {{ define "judgeSearchResultSingle.layout" }}
2 | {{ template "allheader.navbar" . }}
3 | {{ template "judgeSearchResultSingle.content" . }}
4 | {{ template "footer" . }}
5 | {{ end }}
6 | {{ define "judgeSearchResultSingle.content" }}
7 |
8 |
JUDGE Info
9 |
10 |
11 |
12 | ID |
13 | JudgeId |
14 | JudgeName |
15 | JudgePwd |
16 | JudgeGender |
17 | JudgeAddress |
18 | JudgePhone |
19 | JudgeType |
20 | JudgePhoto |
21 |
22 |
23 |
24 | {{ .ID }} |
25 | {{ .JudgeId }} |
26 | {{ .JudgeName }} |
27 | {{ .JudgePwd }} |
28 | {{ .JudgeGender }} |
29 | {{ .JudgeAddress }} |
30 | {{ .JudgePhone }} |
31 | {{ .JudgeType }} |
32 | {{ .JudgePhoto }} |
33 |
34 |
35 |
36 |
37 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/login.html:
--------------------------------------------------------------------------------
1 | {{ define "login.layout" }}
2 |
3 | {{ template "navbar" . }}
4 | {{ template "login.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "login.content" }}
10 |
26 |
27 |
54 |
55 |
56 | {{ end }}
--------------------------------------------------------------------------------
/UI/templates/navbar.html:
--------------------------------------------------------------------------------
1 | {{ define "navbar" }}
2 |
3 |
4 | Court Case Manegment System
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
26 |
27 | {{ end }}
28 |
29 |
--------------------------------------------------------------------------------
/UI/templates/opponent.home.html:
--------------------------------------------------------------------------------
1 | {{ define "opponent.home.layout" }}
2 |
3 | {{ template "allheader.navbar" . }}
4 | {{ template "opponent.home.content" . }}
5 | {{ template "footer" . }}
6 |
7 | {{ end }}
8 |
9 | {{ define "opponent.home.content" }}
10 |
11 |
12 |
14 |
{{ .OppType }} Home Page
15 |
16 | ID: {{ .OppId }}
17 |
18 |
19 |

20 |
21 |
Welcome to the {{ .OppType }} Page
22 |
ID: {{ .OppId }}
23 |
24 |
25 |
26 |
37 |
38 | Appeal on a Case
39 |
44 |
45 |
46 |
47 |