├── .editorconfig
├── .gitignore
├── .vscode
├── extensions.json
├── launch.json
└── tasks.json
├── README.md
├── angular.json
├── db.json
├── package-lock.json
├── package.json
├── src
├── app
│ ├── app-routing.module.ts
│ ├── app.component.html
│ ├── app.component.scss
│ ├── app.component.spec.ts
│ ├── app.component.ts
│ ├── app.module.ts
│ ├── core
│ │ ├── core.service.spec.ts
│ │ └── core.service.ts
│ ├── emp-add-edit
│ │ ├── emp-add-edit.component.html
│ │ ├── emp-add-edit.component.scss
│ │ ├── emp-add-edit.component.spec.ts
│ │ └── emp-add-edit.component.ts
│ └── services
│ │ ├── employee.service.spec.ts
│ │ └── employee.service.ts
├── assets
│ └── .gitkeep
├── favicon.ico
├── index.html
├── main.ts
└── styles.scss
├── tsconfig.app.json
├── tsconfig.json
└── tsconfig.spec.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.ts]
12 | quote_type = single
13 |
14 | [*.md]
15 | max_line_length = off
16 | trim_trailing_whitespace = false
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # Compiled output
4 | /dist
5 | /tmp
6 | /out-tsc
7 | /bazel-out
8 |
9 | # Node
10 | /node_modules
11 | npm-debug.log
12 | yarn-error.log
13 |
14 | # IDEs and editors
15 | .idea/
16 | .project
17 | .classpath
18 | .c9/
19 | *.launch
20 | .settings/
21 | *.sublime-workspace
22 |
23 | # Visual Studio Code
24 | .vscode/*
25 | !.vscode/settings.json
26 | !.vscode/tasks.json
27 | !.vscode/launch.json
28 | !.vscode/extensions.json
29 | .history/*
30 |
31 | # Miscellaneous
32 | /.angular/cache
33 | .sass-cache/
34 | /connect.lock
35 | /coverage
36 | /libpeerconnection.log
37 | testem.log
38 | /typings
39 |
40 | # System files
41 | .DS_Store
42 | Thumbs.db
43 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
3 | "recommendations": ["angular.ng-template"]
4 | }
5 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
3 | "version": "0.2.0",
4 | "configurations": [
5 | {
6 | "name": "ng serve",
7 | "type": "pwa-chrome",
8 | "request": "launch",
9 | "preLaunchTask": "npm: start",
10 | "url": "http://localhost:4200/"
11 | },
12 | {
13 | "name": "ng test",
14 | "type": "chrome",
15 | "request": "launch",
16 | "preLaunchTask": "npm: test",
17 | "url": "http://localhost:9876/debug.html"
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
3 | "version": "2.0.0",
4 | "tasks": [
5 | {
6 | "type": "npm",
7 | "script": "start",
8 | "isBackground": true,
9 | "problemMatcher": {
10 | "owner": "typescript",
11 | "pattern": "$tsc",
12 | "background": {
13 | "activeOnStart": true,
14 | "beginsPattern": {
15 | "regexp": "(.*?)"
16 | },
17 | "endsPattern": {
18 | "regexp": "bundle generation complete"
19 | }
20 | }
21 | }
22 | },
23 | {
24 | "type": "npm",
25 | "script": "test",
26 | "isBackground": true,
27 | "problemMatcher": {
28 | "owner": "typescript",
29 | "pattern": "$tsc",
30 | "background": {
31 | "activeOnStart": true,
32 | "beginsPattern": {
33 | "regexp": "(.*?)"
34 | },
35 | "endsPattern": {
36 | "regexp": "bundle generation complete"
37 | }
38 | }
39 | }
40 | }
41 | ]
42 | }
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CrudApp
2 |
3 | This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.0.1.
4 |
5 | ## Development server
6 |
7 | Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
8 |
9 | ## Code scaffolding
10 |
11 | Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
12 |
13 | ## Build
14 |
15 | Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
16 |
17 | ## Running unit tests
18 |
19 | Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
20 |
21 | ## Running end-to-end tests
22 |
23 | Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
24 |
25 | ## Further help
26 |
27 | To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
28 |
--------------------------------------------------------------------------------
/angular.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3 | "version": 1,
4 | "newProjectRoot": "projects",
5 | "projects": {
6 | "crud-app": {
7 | "projectType": "application",
8 | "schematics": {
9 | "@schematics/angular:component": {
10 | "style": "scss"
11 | }
12 | },
13 | "root": "",
14 | "sourceRoot": "src",
15 | "prefix": "app",
16 | "architect": {
17 | "build": {
18 | "builder": "@angular-devkit/build-angular:browser",
19 | "options": {
20 | "outputPath": "dist/crud-app",
21 | "index": "src/index.html",
22 | "main": "src/main.ts",
23 | "polyfills": [
24 | "zone.js"
25 | ],
26 | "tsConfig": "tsconfig.app.json",
27 | "inlineStyleLanguage": "scss",
28 | "assets": [
29 | "src/favicon.ico",
30 | "src/assets"
31 | ],
32 | "styles": [
33 | "@angular/material/prebuilt-themes/indigo-pink.css",
34 | "src/styles.scss"
35 | ],
36 | "scripts": []
37 | },
38 | "configurations": {
39 | "production": {
40 | "budgets": [
41 | {
42 | "type": "initial",
43 | "maximumWarning": "500kb",
44 | "maximumError": "1mb"
45 | },
46 | {
47 | "type": "anyComponentStyle",
48 | "maximumWarning": "2kb",
49 | "maximumError": "4kb"
50 | }
51 | ],
52 | "outputHashing": "all"
53 | },
54 | "development": {
55 | "buildOptimizer": false,
56 | "optimization": false,
57 | "vendorChunk": true,
58 | "extractLicenses": false,
59 | "sourceMap": true,
60 | "namedChunks": true
61 | }
62 | },
63 | "defaultConfiguration": "production"
64 | },
65 | "serve": {
66 | "builder": "@angular-devkit/build-angular:dev-server",
67 | "configurations": {
68 | "production": {
69 | "browserTarget": "crud-app:build:production"
70 | },
71 | "development": {
72 | "browserTarget": "crud-app:build:development"
73 | }
74 | },
75 | "defaultConfiguration": "development"
76 | },
77 | "extract-i18n": {
78 | "builder": "@angular-devkit/build-angular:extract-i18n",
79 | "options": {
80 | "browserTarget": "crud-app:build"
81 | }
82 | },
83 | "test": {
84 | "builder": "@angular-devkit/build-angular:karma",
85 | "options": {
86 | "polyfills": [
87 | "zone.js",
88 | "zone.js/testing"
89 | ],
90 | "tsConfig": "tsconfig.spec.json",
91 | "inlineStyleLanguage": "scss",
92 | "assets": [
93 | "src/favicon.ico",
94 | "src/assets"
95 | ],
96 | "styles": [
97 | "@angular/material/prebuilt-themes/indigo-pink.css",
98 | "src/styles.scss"
99 | ],
100 | "scripts": []
101 | }
102 | }
103 | }
104 | }
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/db.json:
--------------------------------------------------------------------------------
1 | {
2 | "posts": [
3 | {
4 | "id": 1,
5 | "title": "json-server",
6 | "author": "typicode"
7 | }
8 | ],
9 | "comments": [
10 | {
11 | "id": 1,
12 | "body": "some comment",
13 | "postId": 1
14 | }
15 | ],
16 | "profile": {
17 | "name": "typicode"
18 | },
19 | "employees": [
20 | {
21 | "id": 1,
22 | "firstName": "Brinn",
23 | "lastName": "Jephcote",
24 | "email": "bjephcote0@archive.org",
25 | "dob": "1981-10-05T12:09:39Z",
26 | "gender": "Female",
27 | "education": "Graduate",
28 | "company": "Gabspot",
29 | "experience": 36,
30 | "package": 37
31 | },
32 | {
33 | "id": 2,
34 | "firstName": "Kenneth",
35 | "lastName": "MacElholm",
36 | "email": "kmacelholm1@sina.com.cn",
37 | "dob": "1991-09-12T22:14:02Z",
38 | "gender": "Male",
39 | "education": "Matric",
40 | "company": "Agivu",
41 | "experience": 75,
42 | "package": 17
43 | },
44 | {
45 | "id": 3,
46 | "firstName": "Kimmy",
47 | "lastName": "Penniall",
48 | "email": "kpenniall2@biblegateway.com",
49 | "dob": "1980-05-19T08:23:30Z",
50 | "gender": "Female",
51 | "education": "Graduate",
52 | "company": "Mycat",
53 | "experience": 45,
54 | "package": 17
55 | },
56 | {
57 | "firstName": "Amity",
58 | "lastName": "Guillard",
59 | "email": "aguillard3@blogspot.com",
60 | "dob": "1992-04-28T23:34:29Z",
61 | "gender": "others",
62 | "education": "Graduate",
63 | "company": "Youopia",
64 | "experience": 10,
65 | "package": 16,
66 | "id": 4
67 | },
68 | {
69 | "firstName": "Munmro",
70 | "lastName": "Wrangle",
71 | "email": "mwrangle4@network.org",
72 | "dob": "2002-06-04T05:11:37Z",
73 | "gender": "Male",
74 | "education": "Post Graduate",
75 | "company": "Jaxworks",
76 | "experience": 63,
77 | "package": 9,
78 | "id": 5
79 | },
80 | {
81 | "id": 6,
82 | "firstName": "Hunter",
83 | "lastName": "Lammenga",
84 | "email": "hlammenga5@studiopress.com",
85 | "dob": "1990-01-18T09:36:59Z",
86 | "gender": "Male",
87 | "education": "Intermediate",
88 | "company": "Wordpedia",
89 | "experience": 94,
90 | "package": 20
91 | },
92 | {
93 | "id": 7,
94 | "firstName": "Dot",
95 | "lastName": "Staterfield",
96 | "email": "dstaterfield6@icq.com",
97 | "dob": "1983-12-25T00:37:36Z",
98 | "gender": "Female",
99 | "education": "Post Graduate",
100 | "company": "Riffpath",
101 | "experience": 10,
102 | "package": 16
103 | },
104 | {
105 | "id": 8,
106 | "firstName": "Monika",
107 | "lastName": "Noni",
108 | "email": "mnoni7@eventbrite.com",
109 | "dob": "1985-06-11T00:30:28Z",
110 | "gender": "Female",
111 | "education": "Matric",
112 | "company": "Skinte",
113 | "experience": 9,
114 | "package": 32
115 | },
116 | {
117 | "id": 9,
118 | "firstName": "Ganny",
119 | "lastName": "Cammacke",
120 | "email": "gcammacke8@pbs.org",
121 | "dob": "1997-01-01T21:36:29Z",
122 | "gender": "Male",
123 | "education": "Diploma",
124 | "company": "Demizz",
125 | "experience": 30,
126 | "package": 28
127 | },
128 | {
129 | "id": 10,
130 | "firstName": "William",
131 | "lastName": "Farnish",
132 | "email": "wfarnish9@163.com",
133 | "dob": "1991-11-18T19:37:05Z",
134 | "gender": "Male",
135 | "education": "Matric",
136 | "company": "Teklist",
137 | "experience": 6,
138 | "package": 18
139 | },
140 | {
141 | "id": 11,
142 | "firstName": "Tim",
143 | "lastName": "Triggs",
144 | "email": "ttriggsa@statcounter.com",
145 | "dob": "1993-12-13T20:31:34Z",
146 | "gender": "Male",
147 | "education": "Matric",
148 | "company": "Tagpad",
149 | "experience": 11,
150 | "package": 33
151 | },
152 | {
153 | "id": 12,
154 | "firstName": "Ambrose",
155 | "lastName": "Khomishin",
156 | "email": "akhomishinb@washington.edu",
157 | "dob": "2004-08-20T06:35:39Z",
158 | "gender": "Male",
159 | "education": "Matric",
160 | "company": "Lajo",
161 | "experience": 90,
162 | "package": 8
163 | },
164 | {
165 | "id": 13,
166 | "firstName": "Ezmeralda",
167 | "lastName": "Darridon",
168 | "email": "edarridonc@army.mil",
169 | "dob": "1988-12-30T16:40:38Z",
170 | "gender": "Female",
171 | "education": "Matric",
172 | "company": "Skimia",
173 | "experience": 88,
174 | "package": 27
175 | },
176 | {
177 | "id": 14,
178 | "firstName": "Prue",
179 | "lastName": "Cashford",
180 | "email": "pcashfordd@printfriendly.com",
181 | "dob": "1983-07-16T06:20:31Z",
182 | "gender": "Female",
183 | "education": "Post Graduate",
184 | "company": "Voomm",
185 | "experience": 81,
186 | "package": 6
187 | },
188 | {
189 | "id": 15,
190 | "firstName": "Ogdon",
191 | "lastName": "Pendall",
192 | "email": "opendalle@businessweek.com",
193 | "dob": "1990-01-14T20:11:01Z",
194 | "gender": "Male",
195 | "education": "Diploma",
196 | "company": "Cogibox",
197 | "experience": 57,
198 | "package": 22
199 | },
200 | {
201 | "id": 16,
202 | "firstName": "Johannah",
203 | "lastName": "Corten",
204 | "email": "jcortenf@xing.com",
205 | "dob": "1985-08-05T16:59:24Z",
206 | "gender": "Female",
207 | "education": "Graduate",
208 | "company": "Izio",
209 | "experience": 29,
210 | "package": 16
211 | },
212 | {
213 | "id": 17,
214 | "firstName": "Helenka",
215 | "lastName": "Wardroper",
216 | "email": "hwardroperg@rediff.com",
217 | "dob": "1998-05-22T06:39:55Z",
218 | "gender": "Female",
219 | "education": "Graduate",
220 | "company": "Latz",
221 | "experience": 64,
222 | "package": 24
223 | },
224 | {
225 | "id": 18,
226 | "firstName": "Scotti",
227 | "lastName": "Hapke",
228 | "email": "shapkeh@netlog.com",
229 | "dob": "1999-02-21T04:57:52Z",
230 | "gender": "Male",
231 | "education": "Graduate",
232 | "company": "Wordify",
233 | "experience": 21,
234 | "package": 27
235 | },
236 | {
237 | "firstName": "Ramona",
238 | "lastName": "Rathjen",
239 | "email": "rrathjeni@chronoengine.com",
240 | "dob": "1986-07-04T01:31:10Z",
241 | "gender": "others",
242 | "education": "Intermediate",
243 | "company": "Demivee",
244 | "experience": 1,
245 | "package": 36,
246 | "id": 19
247 | },
248 | {
249 | "id": 20,
250 | "firstName": "Dermot",
251 | "lastName": "Garralts",
252 | "email": "dgarraltsj@archive.org",
253 | "dob": "1997-06-01T08:46:41Z",
254 | "gender": "Male",
255 | "education": "Graduate",
256 | "company": "Mydeo",
257 | "experience": 20,
258 | "package": 12
259 | },
260 | {
261 | "id": 21,
262 | "firstName": "Sidnee",
263 | "lastName": "Dannett",
264 | "email": "sdannettk@hao123.com",
265 | "dob": "1989-01-25T06:47:09Z",
266 | "gender": "Agender",
267 | "education": "Intermediate",
268 | "company": "Eazzy",
269 | "experience": 98,
270 | "package": 37
271 | },
272 | {
273 | "id": 22,
274 | "firstName": "Berthe",
275 | "lastName": "Chaves",
276 | "email": "bchavesl@howstuffworks.com",
277 | "dob": "2002-06-03T14:10:12Z",
278 | "gender": "Female",
279 | "education": "Intermediate",
280 | "company": "Edgewire",
281 | "experience": 67,
282 | "package": 13
283 | },
284 | {
285 | "id": 23,
286 | "firstName": "Constantin",
287 | "lastName": "Antoniades",
288 | "email": "cantoniadesm@salon.com",
289 | "dob": "1982-06-01T05:00:57Z",
290 | "gender": "Male",
291 | "education": "Graduate",
292 | "company": "Rhycero",
293 | "experience": 31,
294 | "package": 8
295 | },
296 | {
297 | "id": 24,
298 | "firstName": "Evered",
299 | "lastName": "Osanne",
300 | "email": "eosannen@mapy.cz",
301 | "dob": "1981-02-09T22:30:42Z",
302 | "gender": "Male",
303 | "education": "Matric",
304 | "company": "Photolist",
305 | "experience": 69,
306 | "package": 34
307 | },
308 | {
309 | "id": 25,
310 | "firstName": "Dorey",
311 | "lastName": "Palffrey",
312 | "email": "dpalffreyo@hud.gov",
313 | "dob": "2003-07-10T12:47:25Z",
314 | "gender": "Male",
315 | "education": "Matric",
316 | "company": "Camido",
317 | "experience": 32,
318 | "package": 38
319 | },
320 | {
321 | "id": 26,
322 | "firstName": "Fleurette",
323 | "lastName": "Dalgardno",
324 | "email": "fdalgardnop@hugedomains.com",
325 | "dob": "2003-03-21T11:18:23Z",
326 | "gender": "Female",
327 | "education": "Matric",
328 | "company": "Divavu",
329 | "experience": 36,
330 | "package": 36
331 | },
332 | {
333 | "id": 27,
334 | "firstName": "Byrom",
335 | "lastName": "Dolley",
336 | "email": "bdolleyq@buzzfeed.com",
337 | "dob": "1981-03-11T06:21:26Z",
338 | "gender": "Male",
339 | "education": "Intermediate",
340 | "company": "Voomm",
341 | "experience": 15,
342 | "package": 23
343 | },
344 | {
345 | "id": 28,
346 | "firstName": "Nalani",
347 | "lastName": "Bonham",
348 | "email": "nbonhamr@unc.edu",
349 | "dob": "1990-04-06T03:40:30Z",
350 | "gender": "Female",
351 | "education": "Intermediate",
352 | "company": "Riffwire",
353 | "experience": 97,
354 | "package": 26
355 | },
356 | {
357 | "id": 29,
358 | "firstName": "Wallache",
359 | "lastName": "Haggidon",
360 | "email": "whaggidons@delicious.com",
361 | "dob": "1985-03-29T23:42:59Z",
362 | "gender": "Male",
363 | "education": "Graduate",
364 | "company": "Linklinks",
365 | "experience": 59,
366 | "package": 7
367 | },
368 | {
369 | "id": 30,
370 | "firstName": "Aliza",
371 | "lastName": "Spratling",
372 | "email": "aspratlingt@reddit.com",
373 | "dob": "1994-02-14T04:59:39Z",
374 | "gender": "Female",
375 | "education": "Matric",
376 | "company": "Npath",
377 | "experience": 50,
378 | "package": 8
379 | },
380 | {
381 | "id": 31,
382 | "firstName": "Celle",
383 | "lastName": "Illsley",
384 | "email": "cillsleyu@tinypic.com",
385 | "dob": "2001-07-02T11:35:17Z",
386 | "gender": "Female",
387 | "education": "Graduate",
388 | "company": "Chatterpoint",
389 | "experience": 1,
390 | "package": 37
391 | },
392 | {
393 | "id": 32,
394 | "firstName": "Hamlen",
395 | "lastName": "Springate",
396 | "email": "hspringatev@time.com",
397 | "dob": "1980-10-17T07:30:58Z",
398 | "gender": "Male",
399 | "education": "Intermediate",
400 | "company": "Photospace",
401 | "experience": 79,
402 | "package": 5
403 | },
404 | {
405 | "id": 33,
406 | "firstName": "Hagan",
407 | "lastName": "Chatenet",
408 | "email": "hchatenetw@npr.org",
409 | "dob": "1981-07-25T07:24:32Z",
410 | "gender": "Male",
411 | "education": "Post Graduate",
412 | "company": "Zoozzy",
413 | "experience": 44,
414 | "package": 40
415 | },
416 | {
417 | "id": 34,
418 | "firstName": "Farlay",
419 | "lastName": "Hriinchenko",
420 | "email": "fhriinchenkox@senate.gov",
421 | "dob": "1980-07-11T00:54:47Z",
422 | "gender": "Male",
423 | "education": "Matric",
424 | "company": "Zoozzy",
425 | "experience": 39,
426 | "package": 17
427 | },
428 | {
429 | "id": 35,
430 | "firstName": "Hurley",
431 | "lastName": "Kunat",
432 | "email": "hkunaty@ed.gov",
433 | "dob": "1985-04-22T12:01:24Z",
434 | "gender": "Male",
435 | "education": "Graduate",
436 | "company": "Devify",
437 | "experience": 22,
438 | "package": 34
439 | },
440 | {
441 | "id": 36,
442 | "firstName": "Alfred",
443 | "lastName": "Oxenham",
444 | "email": "aoxenhamz@yellowpages.com",
445 | "dob": "1983-01-27T00:42:51Z",
446 | "gender": "Agender",
447 | "education": "Graduate",
448 | "company": "Topicblab",
449 | "experience": 52,
450 | "package": 11
451 | },
452 | {
453 | "id": 37,
454 | "firstName": "Adelheid",
455 | "lastName": "Mowday",
456 | "email": "amowday10@goo.gl",
457 | "dob": "1995-02-08T10:43:46Z",
458 | "gender": "Female",
459 | "education": "Post Graduate",
460 | "company": "Jabbertype",
461 | "experience": 50,
462 | "package": 38
463 | },
464 | {
465 | "id": 38,
466 | "firstName": "Cesya",
467 | "lastName": "Bevens",
468 | "email": "cbevens11@umn.edu",
469 | "dob": "1982-09-14T20:00:37Z",
470 | "gender": "Female",
471 | "education": "Graduate",
472 | "company": "Skivee",
473 | "experience": 62,
474 | "package": 27
475 | },
476 | {
477 | "id": 39,
478 | "firstName": "Bab",
479 | "lastName": "Toothill",
480 | "email": "btoothill12@creativecommons.org",
481 | "dob": "1993-01-02T15:33:01Z",
482 | "gender": "Female",
483 | "education": "Post Graduate",
484 | "company": "Fivebridge",
485 | "experience": 34,
486 | "package": 26
487 | },
488 | {
489 | "id": 40,
490 | "firstName": "Star",
491 | "lastName": "Doutch",
492 | "email": "sdoutch13@google.ca",
493 | "dob": "1987-08-02T15:26:32Z",
494 | "gender": "Female",
495 | "education": "Intermediate",
496 | "company": "Devcast",
497 | "experience": 93,
498 | "package": 28
499 | },
500 | {
501 | "id": 41,
502 | "firstName": "Walliw",
503 | "lastName": "Rowat",
504 | "email": "wrowat14@google.com.br",
505 | "dob": "1999-07-10T16:05:48Z",
506 | "gender": "Female",
507 | "education": "Graduate",
508 | "company": "Kayveo",
509 | "experience": 21,
510 | "package": 17
511 | },
512 | {
513 | "id": 42,
514 | "firstName": "Naoma",
515 | "lastName": "Bardill",
516 | "email": "nbardill15@taobao.com",
517 | "dob": "1997-08-16T04:59:29Z",
518 | "gender": "Female",
519 | "education": "Matric",
520 | "company": "Fanoodle",
521 | "experience": 62,
522 | "package": 12
523 | },
524 | {
525 | "id": 43,
526 | "firstName": "Simonne",
527 | "lastName": "Bellinger",
528 | "email": "sbellinger16@auda.org.au",
529 | "dob": "1999-04-24T19:16:35Z",
530 | "gender": "Female",
531 | "education": "Graduate",
532 | "company": "Brainverse",
533 | "experience": 15,
534 | "package": 40
535 | },
536 | {
537 | "id": 44,
538 | "firstName": "Kacie",
539 | "lastName": "Litterick",
540 | "email": "klitterick17@wikipedia.org",
541 | "dob": "1993-06-01T01:56:17Z",
542 | "gender": "Genderqueer",
543 | "education": "Graduate",
544 | "company": "Rhyloo",
545 | "experience": 26,
546 | "package": 25
547 | },
548 | {
549 | "id": 45,
550 | "firstName": "Fowler",
551 | "lastName": "Navaro",
552 | "email": "fnavaro18@feedburner.com",
553 | "dob": "1984-05-02T10:35:31Z",
554 | "gender": "Male",
555 | "education": "Intermediate",
556 | "company": "Mynte",
557 | "experience": 57,
558 | "package": 32
559 | },
560 | {
561 | "id": 46,
562 | "firstName": "Lynnett",
563 | "lastName": "O'Flaverty",
564 | "email": "loflaverty19@eventbrite.com",
565 | "dob": "1993-07-11T05:05:34Z",
566 | "gender": "Female",
567 | "education": "Intermediate",
568 | "company": "Riffpedia",
569 | "experience": 57,
570 | "package": 26
571 | },
572 | {
573 | "id": 47,
574 | "firstName": "Shela",
575 | "lastName": "Berzin",
576 | "email": "sberzin1a@msu.edu",
577 | "dob": "2000-03-23T15:10:12Z",
578 | "gender": "Female",
579 | "education": "Graduate",
580 | "company": "Blogspan",
581 | "experience": 52,
582 | "package": 13
583 | },
584 | {
585 | "id": 48,
586 | "firstName": "Hercule",
587 | "lastName": "Langhorne",
588 | "email": "hlanghorne1b@netvibes.com",
589 | "dob": "2003-09-11T01:32:16Z",
590 | "gender": "Male",
591 | "education": "Intermediate",
592 | "company": "Latz",
593 | "experience": 37,
594 | "package": 14
595 | },
596 | {
597 | "id": 49,
598 | "firstName": "Brina",
599 | "lastName": "Shinton",
600 | "email": "bshinton1c@ovh.net",
601 | "dob": "1995-12-31T16:46:40Z",
602 | "gender": "Female",
603 | "education": "Intermediate",
604 | "company": "Dablist",
605 | "experience": 19,
606 | "package": 26
607 | },
608 | {
609 | "id": 50,
610 | "firstName": "Stormie",
611 | "lastName": "Toomer",
612 | "email": "stoomer1d@umich.edu",
613 | "dob": "1989-09-05T11:51:05Z",
614 | "gender": "Female",
615 | "education": "Post Graduate",
616 | "company": "Zoomlounge",
617 | "experience": 93,
618 | "package": 33
619 | },
620 | {
621 | "id": 51,
622 | "firstName": "Ugo",
623 | "lastName": "Reader",
624 | "email": "ureader1e@tuttocitta.it",
625 | "dob": "1983-10-06T23:12:01Z",
626 | "gender": "Male",
627 | "education": "Intermediate",
628 | "company": "Skipstorm",
629 | "experience": 98,
630 | "package": 8
631 | },
632 | {
633 | "id": 52,
634 | "firstName": "Fabe",
635 | "lastName": "Senner",
636 | "email": "fsenner1f@g.co",
637 | "dob": "1980-11-25T03:26:07Z",
638 | "gender": "Male",
639 | "education": "Matric",
640 | "company": "Skyble",
641 | "experience": 35,
642 | "package": 21
643 | },
644 | {
645 | "id": 53,
646 | "firstName": "Mikey",
647 | "lastName": "Dominy",
648 | "email": "mdominy1g@usnews.com",
649 | "dob": "1989-12-06T23:45:32Z",
650 | "gender": "Male",
651 | "education": "Diploma",
652 | "company": "Aimbu",
653 | "experience": 25,
654 | "package": 11
655 | },
656 | {
657 | "id": 54,
658 | "firstName": "Iorgo",
659 | "lastName": "Cockshoot",
660 | "email": "icockshoot1h@examiner.com",
661 | "dob": "1998-10-14T21:51:25Z",
662 | "gender": "Male",
663 | "education": "Intermediate",
664 | "company": "Aimbo",
665 | "experience": 98,
666 | "package": 31
667 | },
668 | {
669 | "id": 55,
670 | "firstName": "Emile",
671 | "lastName": "Roman",
672 | "email": "eroman1i@php.net",
673 | "dob": "1982-02-05T07:59:25Z",
674 | "gender": "Male",
675 | "education": "Matric",
676 | "company": "Divanoodle",
677 | "experience": 62,
678 | "package": 11
679 | },
680 | {
681 | "id": 56,
682 | "firstName": "Leanora",
683 | "lastName": "Coneybeare",
684 | "email": "lconeybeare1j@de.vu",
685 | "dob": "2000-02-26T12:52:40Z",
686 | "gender": "Female",
687 | "education": "Matric",
688 | "company": "Kare",
689 | "experience": 58,
690 | "package": 37
691 | },
692 | {
693 | "id": 57,
694 | "firstName": "Sally",
695 | "lastName": "Chander",
696 | "email": "schander1k@utexas.edu",
697 | "dob": "1980-03-08T07:23:43Z",
698 | "gender": "Female",
699 | "education": "Matric",
700 | "company": "Eare",
701 | "experience": 32,
702 | "package": 28
703 | },
704 | {
705 | "id": 58,
706 | "firstName": "Cecil",
707 | "lastName": "Ironmonger",
708 | "email": "cironmonger1l@forbes.com",
709 | "dob": "1983-05-24T10:26:44Z",
710 | "gender": "Male",
711 | "education": "Post Graduate",
712 | "company": "Rooxo",
713 | "experience": 99,
714 | "package": 22
715 | },
716 | {
717 | "id": 59,
718 | "firstName": "Colas",
719 | "lastName": "Bonar",
720 | "email": "cbonar1m@privacy.gov.au",
721 | "dob": "1990-08-12T03:06:17Z",
722 | "gender": "Male",
723 | "education": "Post Graduate",
724 | "company": "Thoughtstorm",
725 | "experience": 2,
726 | "package": 33
727 | },
728 | {
729 | "id": 60,
730 | "firstName": "Skipp",
731 | "lastName": "Tubritt",
732 | "email": "stubritt1n@dropbox.com",
733 | "dob": "1982-08-12T22:47:24Z",
734 | "gender": "Male",
735 | "education": "Graduate",
736 | "company": "Gevee",
737 | "experience": 5,
738 | "package": 31
739 | },
740 | {
741 | "id": 61,
742 | "firstName": "Alexandr",
743 | "lastName": "Rubbert",
744 | "email": "arubbert1o@umich.edu",
745 | "dob": "1984-12-22T22:13:02Z",
746 | "gender": "Male",
747 | "education": "Diploma",
748 | "company": "Myworks",
749 | "experience": 99,
750 | "package": 17
751 | },
752 | {
753 | "id": 62,
754 | "firstName": "Shirl",
755 | "lastName": "Kynastone",
756 | "email": "skynastone1p@hexun.com",
757 | "dob": "2001-06-29T18:30:49Z",
758 | "gender": "Female",
759 | "education": "Diploma",
760 | "company": "Mynte",
761 | "experience": 13,
762 | "package": 7
763 | },
764 | {
765 | "id": 63,
766 | "firstName": "Julia",
767 | "lastName": "Benny",
768 | "email": "jbenny1q@prlog.org",
769 | "dob": "1981-09-21T06:20:23Z",
770 | "gender": "Female",
771 | "education": "Matric",
772 | "company": "Wikido",
773 | "experience": 48,
774 | "package": 6
775 | },
776 | {
777 | "id": 64,
778 | "firstName": "Pancho",
779 | "lastName": "O'Grada",
780 | "email": "pograda1r@ameblo.jp",
781 | "dob": "1987-09-08T01:36:33Z",
782 | "gender": "Male",
783 | "education": "Diploma",
784 | "company": "Topdrive",
785 | "experience": 22,
786 | "package": 17
787 | },
788 | {
789 | "id": 65,
790 | "firstName": "Gordon",
791 | "lastName": "Mumbray",
792 | "email": "gmumbray1s@artisteer.com",
793 | "dob": "1991-02-18T06:51:12Z",
794 | "gender": "Male",
795 | "education": "Intermediate",
796 | "company": "Voonder",
797 | "experience": 13,
798 | "package": 12
799 | },
800 | {
801 | "id": 66,
802 | "firstName": "Allix",
803 | "lastName": "Spellecy",
804 | "email": "aspellecy1t@ucoz.com",
805 | "dob": "1989-11-06T21:08:32Z",
806 | "gender": "Female",
807 | "education": "Matric",
808 | "company": "Zoomzone",
809 | "experience": 93,
810 | "package": 8
811 | },
812 | {
813 | "id": 67,
814 | "firstName": "Godard",
815 | "lastName": "Pigot",
816 | "email": "gpigot1u@facebook.com",
817 | "dob": "1999-11-24T02:36:08Z",
818 | "gender": "Male",
819 | "education": "Intermediate",
820 | "company": "Jaxbean",
821 | "experience": 42,
822 | "package": 40
823 | },
824 | {
825 | "id": 68,
826 | "firstName": "Alexandra",
827 | "lastName": "Sundin",
828 | "email": "asundin1v@blinklist.com",
829 | "dob": "1994-10-24T11:53:12Z",
830 | "gender": "Female",
831 | "education": "Graduate",
832 | "company": "Lazzy",
833 | "experience": 3,
834 | "package": 5
835 | },
836 | {
837 | "id": 69,
838 | "firstName": "Tucker",
839 | "lastName": "Stubbings",
840 | "email": "tstubbings1w@desdev.cn",
841 | "dob": "1993-12-07T22:58:32Z",
842 | "gender": "Male",
843 | "education": "Matric",
844 | "company": "Buzzdog",
845 | "experience": 50,
846 | "package": 37
847 | },
848 | {
849 | "id": 70,
850 | "firstName": "Ellie",
851 | "lastName": "Kybird",
852 | "email": "ekybird1x@whitehouse.gov",
853 | "dob": "1994-04-03T05:00:08Z",
854 | "gender": "Female",
855 | "education": "Matric",
856 | "company": "Twitterbridge",
857 | "experience": 40,
858 | "package": 23
859 | },
860 | {
861 | "id": 71,
862 | "firstName": "Mateo",
863 | "lastName": "Clunan",
864 | "email": "mclunan1y@github.com",
865 | "dob": "1988-12-08T02:45:34Z",
866 | "gender": "Male",
867 | "education": "Graduate",
868 | "company": "Avamba",
869 | "experience": 6,
870 | "package": 17
871 | },
872 | {
873 | "id": 72,
874 | "firstName": "Lacie",
875 | "lastName": "Anstead",
876 | "email": "lanstead1z@csmonitor.com",
877 | "dob": "1989-06-05T03:42:27Z",
878 | "gender": "Agender",
879 | "education": "Intermediate",
880 | "company": "Thoughtstorm",
881 | "experience": 8,
882 | "package": 22
883 | },
884 | {
885 | "id": 73,
886 | "firstName": "Rosemarie",
887 | "lastName": "Gabbitis",
888 | "email": "rgabbitis20@dell.com",
889 | "dob": "1994-07-20T21:20:22Z",
890 | "gender": "Female",
891 | "education": "Matric",
892 | "company": "Roomm",
893 | "experience": 66,
894 | "package": 21
895 | },
896 | {
897 | "id": 74,
898 | "firstName": "Hobard",
899 | "lastName": "Paeckmeyer",
900 | "email": "hpaeckmeyer21@addtoany.com",
901 | "dob": "1991-05-21T08:03:49Z",
902 | "gender": "Male",
903 | "education": "Post Graduate",
904 | "company": "Skivee",
905 | "experience": 70,
906 | "package": 10
907 | },
908 | {
909 | "id": 75,
910 | "firstName": "Cherilyn",
911 | "lastName": "O'Rowane",
912 | "email": "corowane22@wikimedia.org",
913 | "dob": "1985-07-17T14:52:33Z",
914 | "gender": "Female",
915 | "education": "Intermediate",
916 | "company": "Twitterwire",
917 | "experience": 70,
918 | "package": 36
919 | },
920 | {
921 | "id": 76,
922 | "firstName": "Curcio",
923 | "lastName": "Van der Veldt",
924 | "email": "cvanderveldt23@ifeng.com",
925 | "dob": "2004-09-18T01:37:05Z",
926 | "gender": "Male",
927 | "education": "Diploma",
928 | "company": "Agimba",
929 | "experience": 30,
930 | "package": 11
931 | },
932 | {
933 | "id": 77,
934 | "firstName": "Weider",
935 | "lastName": "Willmore",
936 | "email": "wwillmore24@addthis.com",
937 | "dob": "2003-11-11T20:31:28Z",
938 | "gender": "Male",
939 | "education": "Post Graduate",
940 | "company": "Nlounge",
941 | "experience": 87,
942 | "package": 36
943 | },
944 | {
945 | "id": 78,
946 | "firstName": "Boris",
947 | "lastName": "Crumby",
948 | "email": "bcrumby25@mapy.cz",
949 | "dob": "2003-08-10T10:40:04Z",
950 | "gender": "Male",
951 | "education": "Post Graduate",
952 | "company": "Topicshots",
953 | "experience": 26,
954 | "package": 19
955 | },
956 | {
957 | "id": 79,
958 | "firstName": "Godfrey",
959 | "lastName": "McBrier",
960 | "email": "gmcbrier26@icq.com",
961 | "dob": "1980-06-06T04:07:19Z",
962 | "gender": "Male",
963 | "education": "Intermediate",
964 | "company": "Chatterpoint",
965 | "experience": 48,
966 | "package": 11
967 | },
968 | {
969 | "id": 80,
970 | "firstName": "Chico",
971 | "lastName": "Casellas",
972 | "email": "ccasellas27@businessinsider.com",
973 | "dob": "1982-06-18T10:30:47Z",
974 | "gender": "Male",
975 | "education": "Post Graduate",
976 | "company": "Eabox",
977 | "experience": 50,
978 | "package": 10
979 | },
980 | {
981 | "id": 81,
982 | "firstName": "Sena",
983 | "lastName": "O'Leagham",
984 | "email": "soleagham28@jalbum.net",
985 | "dob": "1980-10-04T12:19:43Z",
986 | "gender": "Female",
987 | "education": "Graduate",
988 | "company": "Abatz",
989 | "experience": 87,
990 | "package": 34
991 | },
992 | {
993 | "id": 82,
994 | "firstName": "Rance",
995 | "lastName": "Plitz",
996 | "email": "rplitz29@google.co.uk",
997 | "dob": "1991-05-02T00:45:29Z",
998 | "gender": "Male",
999 | "education": "Post Graduate",
1000 | "company": "Roomm",
1001 | "experience": 92,
1002 | "package": 24
1003 | },
1004 | {
1005 | "id": 83,
1006 | "firstName": "Foss",
1007 | "lastName": "Laity",
1008 | "email": "flaity2a@scribd.com",
1009 | "dob": "2001-02-11T07:06:34Z",
1010 | "gender": "Male",
1011 | "education": "Intermediate",
1012 | "company": "Twitterworks",
1013 | "experience": 86,
1014 | "package": 12
1015 | },
1016 | {
1017 | "id": 84,
1018 | "firstName": "Brittan",
1019 | "lastName": "Pawlowicz",
1020 | "email": "bpawlowicz2b@youtu.be",
1021 | "dob": "1982-05-03T15:34:43Z",
1022 | "gender": "Female",
1023 | "education": "Intermediate",
1024 | "company": "Abata",
1025 | "experience": 94,
1026 | "package": 14
1027 | },
1028 | {
1029 | "id": 85,
1030 | "firstName": "Marcille",
1031 | "lastName": "Gianinotti",
1032 | "email": "mgianinotti2c@fda.gov",
1033 | "dob": "1982-11-25T14:38:45Z",
1034 | "gender": "Female",
1035 | "education": "Post Graduate",
1036 | "company": "Jabberbean",
1037 | "experience": 52,
1038 | "package": 24
1039 | },
1040 | {
1041 | "id": 86,
1042 | "firstName": "Bear",
1043 | "lastName": "Le Batteur",
1044 | "email": "blebatteur2d@google.it",
1045 | "dob": "2003-12-28T07:47:25Z",
1046 | "gender": "Male",
1047 | "education": "Post Graduate",
1048 | "company": "Roombo",
1049 | "experience": 97,
1050 | "package": 37
1051 | },
1052 | {
1053 | "id": 87,
1054 | "firstName": "Raye",
1055 | "lastName": "Dendle",
1056 | "email": "rdendle2e@soundcloud.com",
1057 | "dob": "1982-02-22T16:31:38Z",
1058 | "gender": "Female",
1059 | "education": "Graduate",
1060 | "company": "Gabspot",
1061 | "experience": 64,
1062 | "package": 17
1063 | },
1064 | {
1065 | "id": 88,
1066 | "firstName": "Randolf",
1067 | "lastName": "Shirlaw",
1068 | "email": "rshirlaw2f@instagram.com",
1069 | "dob": "1985-03-12T09:12:55Z",
1070 | "gender": "Polygender",
1071 | "education": "Diploma",
1072 | "company": "Youbridge",
1073 | "experience": 18,
1074 | "package": 23
1075 | },
1076 | {
1077 | "id": 89,
1078 | "firstName": "Alvy",
1079 | "lastName": "Veale",
1080 | "email": "aveale2g@discovery.com",
1081 | "dob": "1997-06-10T03:43:56Z",
1082 | "gender": "Male",
1083 | "education": "Intermediate",
1084 | "company": "Twiyo",
1085 | "experience": 47,
1086 | "package": 16
1087 | },
1088 | {
1089 | "id": 90,
1090 | "firstName": "Hannis",
1091 | "lastName": "Rolph",
1092 | "email": "hrolph2h@lulu.com",
1093 | "dob": "1986-11-14T21:50:35Z",
1094 | "gender": "Female",
1095 | "education": "Diploma",
1096 | "company": "Gabspot",
1097 | "experience": 85,
1098 | "package": 34
1099 | },
1100 | {
1101 | "id": 91,
1102 | "firstName": "Tasia",
1103 | "lastName": "Garton",
1104 | "email": "tgarton2i@addtoany.com",
1105 | "dob": "1989-07-28T03:54:46Z",
1106 | "gender": "Female",
1107 | "education": "Intermediate",
1108 | "company": "Realfire",
1109 | "experience": 62,
1110 | "package": 24
1111 | },
1112 | {
1113 | "id": 92,
1114 | "firstName": "Ambros",
1115 | "lastName": "Fishbourne",
1116 | "email": "afishbourne2j@dropbox.com",
1117 | "dob": "1983-06-16T22:19:11Z",
1118 | "gender": "Male",
1119 | "education": "Post Graduate",
1120 | "company": "Wikido",
1121 | "experience": 57,
1122 | "package": 14
1123 | },
1124 | {
1125 | "id": 93,
1126 | "firstName": "Bing",
1127 | "lastName": "Scudders",
1128 | "email": "bscudders2k@i2i.jp",
1129 | "dob": "1986-02-07T00:49:19Z",
1130 | "gender": "Male",
1131 | "education": "Graduate",
1132 | "company": "Yodo",
1133 | "experience": 44,
1134 | "package": 19
1135 | },
1136 | {
1137 | "id": 94,
1138 | "firstName": "Timmy",
1139 | "lastName": "Josselsohn",
1140 | "email": "tjosselsohn2l@ow.ly",
1141 | "dob": "1986-02-23T20:31:07Z",
1142 | "gender": "Female",
1143 | "education": "Diploma",
1144 | "company": "Zava",
1145 | "experience": 100,
1146 | "package": 19
1147 | },
1148 | {
1149 | "id": 95,
1150 | "firstName": "Cordula",
1151 | "lastName": "McFade",
1152 | "email": "cmcfade2m@reddit.com",
1153 | "dob": "2004-05-12T22:02:32Z",
1154 | "gender": "Female",
1155 | "education": "Matric",
1156 | "company": "Edgeclub",
1157 | "experience": 38,
1158 | "package": 26
1159 | },
1160 | {
1161 | "id": 96,
1162 | "firstName": "Seward",
1163 | "lastName": "Badham",
1164 | "email": "sbadham2n@altervista.org",
1165 | "dob": "1986-10-18T22:42:38Z",
1166 | "gender": "Male",
1167 | "education": "Intermediate",
1168 | "company": "Aivee",
1169 | "experience": 83,
1170 | "package": 6
1171 | },
1172 | {
1173 | "id": 97,
1174 | "firstName": "Kimball",
1175 | "lastName": "Richly",
1176 | "email": "krichly2o@google.ru",
1177 | "dob": "1996-08-02T12:29:06Z",
1178 | "gender": "Male",
1179 | "education": "Intermediate",
1180 | "company": "Mydeo",
1181 | "experience": 76,
1182 | "package": 20
1183 | },
1184 | {
1185 | "id": 98,
1186 | "firstName": "Erwin",
1187 | "lastName": "Trowell",
1188 | "email": "etrowell2p@disqus.com",
1189 | "dob": "1986-10-04T12:54:28Z",
1190 | "gender": "Male",
1191 | "education": "Diploma",
1192 | "company": "Avamm",
1193 | "experience": 10,
1194 | "package": 35
1195 | },
1196 | {
1197 | "id": 99,
1198 | "firstName": "Marya",
1199 | "lastName": "Strangeways",
1200 | "email": "mstrangeways2q@hostgator.com",
1201 | "dob": "1987-02-07T03:56:20Z",
1202 | "gender": "Female",
1203 | "education": "Matric",
1204 | "company": "Skiptube",
1205 | "experience": 16,
1206 | "package": 12
1207 | },
1208 | {
1209 | "id": 100,
1210 | "firstName": "Borg",
1211 | "lastName": "Pittendreigh",
1212 | "email": "bpittendreigh2r@nih.gov",
1213 | "dob": "1985-11-25T10:01:19Z",
1214 | "gender": "Male",
1215 | "education": "Diploma",
1216 | "company": "Mudo",
1217 | "experience": 27,
1218 | "package": 7
1219 | },
1220 | {
1221 | "id": 101,
1222 | "firstName": "Kaela",
1223 | "lastName": "Jura",
1224 | "email": "kjura2s@adobe.com",
1225 | "dob": "1990-04-17T21:39:53Z",
1226 | "gender": "Female",
1227 | "education": "Diploma",
1228 | "company": "Thoughtsphere",
1229 | "experience": 72,
1230 | "package": 21
1231 | },
1232 | {
1233 | "id": 102,
1234 | "firstName": "Gerry",
1235 | "lastName": "Weighell",
1236 | "email": "gweighell2t@time.com",
1237 | "dob": "2004-02-07T17:05:21Z",
1238 | "gender": "Male",
1239 | "education": "Graduate",
1240 | "company": "Ooba",
1241 | "experience": 17,
1242 | "package": 39
1243 | },
1244 | {
1245 | "id": 103,
1246 | "firstName": "Alastair",
1247 | "lastName": "O' Finan",
1248 | "email": "aofinan2u@amazon.de",
1249 | "dob": "1996-06-04T19:15:24Z",
1250 | "gender": "Male",
1251 | "education": "Diploma",
1252 | "company": "Brainlounge",
1253 | "experience": 70,
1254 | "package": 34
1255 | },
1256 | {
1257 | "id": 104,
1258 | "firstName": "Shadow",
1259 | "lastName": "Fruin",
1260 | "email": "sfruin2v@mozilla.org",
1261 | "dob": "1995-11-19T06:37:01Z",
1262 | "gender": "Agender",
1263 | "education": "Matric",
1264 | "company": "Lazz",
1265 | "experience": 13,
1266 | "package": 6
1267 | },
1268 | {
1269 | "id": 105,
1270 | "firstName": "Babbie",
1271 | "lastName": "Feeny",
1272 | "email": "bfeeny2w@tuttocitta.it",
1273 | "dob": "2001-08-05T06:31:39Z",
1274 | "gender": "Female",
1275 | "education": "Matric",
1276 | "company": "Zoovu",
1277 | "experience": 89,
1278 | "package": 5
1279 | },
1280 | {
1281 | "id": 106,
1282 | "firstName": "Nevsa",
1283 | "lastName": "Leabeater",
1284 | "email": "nleabeater2x@github.com",
1285 | "dob": "2003-03-24T10:11:14Z",
1286 | "gender": "Female",
1287 | "education": "Graduate",
1288 | "company": "Eare",
1289 | "experience": 87,
1290 | "package": 36
1291 | },
1292 | {
1293 | "id": 107,
1294 | "firstName": "Tommie",
1295 | "lastName": "Klimas",
1296 | "email": "tklimas2y@zdnet.com",
1297 | "dob": "1995-10-14T18:15:02Z",
1298 | "gender": "Male",
1299 | "education": "Post Graduate",
1300 | "company": "Jetpulse",
1301 | "experience": 54,
1302 | "package": 19
1303 | },
1304 | {
1305 | "id": 108,
1306 | "firstName": "Ariana",
1307 | "lastName": "Lowden",
1308 | "email": "alowden2z@pen.io",
1309 | "dob": "1997-09-09T11:22:39Z",
1310 | "gender": "Non-binary",
1311 | "education": "Intermediate",
1312 | "company": "Zoomcast",
1313 | "experience": 98,
1314 | "package": 25
1315 | },
1316 | {
1317 | "id": 109,
1318 | "firstName": "Corny",
1319 | "lastName": "Layborn",
1320 | "email": "clayborn30@aboutads.info",
1321 | "dob": "1995-05-13T20:08:12Z",
1322 | "gender": "Male",
1323 | "education": "Diploma",
1324 | "company": "DabZ",
1325 | "experience": 21,
1326 | "package": 11
1327 | },
1328 | {
1329 | "id": 110,
1330 | "firstName": "Gasparo",
1331 | "lastName": "Ker",
1332 | "email": "gker31@technorati.com",
1333 | "dob": "1985-04-22T12:33:44Z",
1334 | "gender": "Male",
1335 | "education": "Post Graduate",
1336 | "company": "Mita",
1337 | "experience": 28,
1338 | "package": 21
1339 | },
1340 | {
1341 | "id": 111,
1342 | "firstName": "Camile",
1343 | "lastName": "Joddins",
1344 | "email": "cjoddins32@lycos.com",
1345 | "dob": "1984-09-06T12:12:07Z",
1346 | "gender": "Female",
1347 | "education": "Intermediate",
1348 | "company": "Shufflebeat",
1349 | "experience": 76,
1350 | "package": 11
1351 | },
1352 | {
1353 | "id": 112,
1354 | "firstName": "Tabbatha",
1355 | "lastName": "Sewall",
1356 | "email": "tsewall33@mysql.com",
1357 | "dob": "1999-03-16T01:30:46Z",
1358 | "gender": "Female",
1359 | "education": "Intermediate",
1360 | "company": "Oyope",
1361 | "experience": 56,
1362 | "package": 25
1363 | },
1364 | {
1365 | "id": 113,
1366 | "firstName": "Nettie",
1367 | "lastName": "Deveraux",
1368 | "email": "ndeveraux34@qq.com",
1369 | "dob": "2004-07-08T01:55:33Z",
1370 | "gender": "Female",
1371 | "education": "Matric",
1372 | "company": "Thoughtstorm",
1373 | "experience": 34,
1374 | "package": 35
1375 | },
1376 | {
1377 | "id": 114,
1378 | "firstName": "Valdemar",
1379 | "lastName": "Tomaszczyk",
1380 | "email": "vtomaszczyk35@com.com",
1381 | "dob": "1990-08-13T14:32:21Z",
1382 | "gender": "Male",
1383 | "education": "Post Graduate",
1384 | "company": "Browseblab",
1385 | "experience": 23,
1386 | "package": 8
1387 | },
1388 | {
1389 | "id": 115,
1390 | "firstName": "Galven",
1391 | "lastName": "Tottle",
1392 | "email": "gtottle36@quantcast.com",
1393 | "dob": "2000-02-01T19:39:17Z",
1394 | "gender": "Male",
1395 | "education": "Post Graduate",
1396 | "company": "Meetz",
1397 | "experience": 21,
1398 | "package": 28
1399 | },
1400 | {
1401 | "id": 116,
1402 | "firstName": "Gratia",
1403 | "lastName": "Silman",
1404 | "email": "gsilman37@weebly.com",
1405 | "dob": "1984-03-04T00:03:55Z",
1406 | "gender": "Non-binary",
1407 | "education": "Diploma",
1408 | "company": "Plambee",
1409 | "experience": 69,
1410 | "package": 30
1411 | },
1412 | {
1413 | "id": 117,
1414 | "firstName": "Seymour",
1415 | "lastName": "Dibdale",
1416 | "email": "sdibdale38@webs.com",
1417 | "dob": "1994-02-19T05:50:41Z",
1418 | "gender": "Male",
1419 | "education": "Matric",
1420 | "company": "Avavee",
1421 | "experience": 72,
1422 | "package": 8
1423 | },
1424 | {
1425 | "id": 118,
1426 | "firstName": "Mannie",
1427 | "lastName": "Harmond",
1428 | "email": "mharmond39@cyberchimps.com",
1429 | "dob": "1985-09-14T05:28:48Z",
1430 | "gender": "Male",
1431 | "education": "Post Graduate",
1432 | "company": "Izio",
1433 | "experience": 15,
1434 | "package": 26
1435 | },
1436 | {
1437 | "id": 119,
1438 | "firstName": "Anne",
1439 | "lastName": "Rome",
1440 | "email": "arome3a@fema.gov",
1441 | "dob": "2000-01-21T10:14:39Z",
1442 | "gender": "Female",
1443 | "education": "Diploma",
1444 | "company": "Tavu",
1445 | "experience": 12,
1446 | "package": 36
1447 | },
1448 | {
1449 | "id": 120,
1450 | "firstName": "Hirsch",
1451 | "lastName": "Foord",
1452 | "email": "hfoord3b@prweb.com",
1453 | "dob": "1990-12-27T13:22:22Z",
1454 | "gender": "Agender",
1455 | "education": "Matric",
1456 | "company": "Zoonder",
1457 | "experience": 89,
1458 | "package": 8
1459 | },
1460 | {
1461 | "id": 121,
1462 | "firstName": "Glenna",
1463 | "lastName": "Trehearn",
1464 | "email": "gtrehearn3c@netscape.com",
1465 | "dob": "1982-11-06T10:08:43Z",
1466 | "gender": "Female",
1467 | "education": "Matric",
1468 | "company": "Vinder",
1469 | "experience": 63,
1470 | "package": 11
1471 | },
1472 | {
1473 | "id": 122,
1474 | "firstName": "Silvanus",
1475 | "lastName": "Vynoll",
1476 | "email": "svynoll3d@51.la",
1477 | "dob": "1994-12-21T09:06:01Z",
1478 | "gender": "Male",
1479 | "education": "Matric",
1480 | "company": "Fliptune",
1481 | "experience": 68,
1482 | "package": 34
1483 | },
1484 | {
1485 | "id": 123,
1486 | "firstName": "Kyrstin",
1487 | "lastName": "Craddock",
1488 | "email": "kcraddock3e@csmonitor.com",
1489 | "dob": "1998-07-25T02:50:51Z",
1490 | "gender": "Female",
1491 | "education": "Matric",
1492 | "company": "Twimm",
1493 | "experience": 55,
1494 | "package": 28
1495 | },
1496 | {
1497 | "id": 124,
1498 | "firstName": "Jon",
1499 | "lastName": "Repp",
1500 | "email": "jrepp3f@mit.edu",
1501 | "dob": "1993-07-08T12:31:46Z",
1502 | "gender": "Male",
1503 | "education": "Intermediate",
1504 | "company": "Babbleset",
1505 | "experience": 94,
1506 | "package": 8
1507 | },
1508 | {
1509 | "id": 125,
1510 | "firstName": "Munmro",
1511 | "lastName": "Eydel",
1512 | "email": "meydel3g@rediff.com",
1513 | "dob": "1983-10-12T00:33:55Z",
1514 | "gender": "Male",
1515 | "education": "Diploma",
1516 | "company": "Wikibox",
1517 | "experience": 43,
1518 | "package": 31
1519 | },
1520 | {
1521 | "id": 126,
1522 | "firstName": "Blinnie",
1523 | "lastName": "Bohman",
1524 | "email": "bbohman3h@ucsd.edu",
1525 | "dob": "1983-04-28T23:11:45Z",
1526 | "gender": "Female",
1527 | "education": "Matric",
1528 | "company": "Devbug",
1529 | "experience": 22,
1530 | "package": 8
1531 | },
1532 | {
1533 | "id": 127,
1534 | "firstName": "Minni",
1535 | "lastName": "Yegorovnin",
1536 | "email": "myegorovnin3i@imdb.com",
1537 | "dob": "1996-11-07T08:55:10Z",
1538 | "gender": "Female",
1539 | "education": "Post Graduate",
1540 | "company": "Zoomdog",
1541 | "experience": 70,
1542 | "package": 37
1543 | },
1544 | {
1545 | "id": 128,
1546 | "firstName": "Norina",
1547 | "lastName": "Sulman",
1548 | "email": "nsulman3j@ftc.gov",
1549 | "dob": "2000-04-19T05:38:07Z",
1550 | "gender": "Female",
1551 | "education": "Post Graduate",
1552 | "company": "Thoughtbeat",
1553 | "experience": 16,
1554 | "package": 26
1555 | },
1556 | {
1557 | "id": 129,
1558 | "firstName": "Rex",
1559 | "lastName": "Letertre",
1560 | "email": "rletertre3k@pcworld.com",
1561 | "dob": "1985-08-08T10:37:17Z",
1562 | "gender": "Male",
1563 | "education": "Intermediate",
1564 | "company": "Photobug",
1565 | "experience": 1,
1566 | "package": 28
1567 | },
1568 | {
1569 | "id": 130,
1570 | "firstName": "Mirabelle",
1571 | "lastName": "Rameaux",
1572 | "email": "mrameaux3l@360.cn",
1573 | "dob": "1988-11-26T03:57:01Z",
1574 | "gender": "Female",
1575 | "education": "Diploma",
1576 | "company": "Skynoodle",
1577 | "experience": 36,
1578 | "package": 21
1579 | },
1580 | {
1581 | "id": 131,
1582 | "firstName": "Bridget",
1583 | "lastName": "Skittle",
1584 | "email": "bskittle3m@multiply.com",
1585 | "dob": "1980-01-28T16:28:24Z",
1586 | "gender": "Female",
1587 | "education": "Matric",
1588 | "company": "Dynava",
1589 | "experience": 61,
1590 | "package": 25
1591 | },
1592 | {
1593 | "id": 132,
1594 | "firstName": "Freddie",
1595 | "lastName": "Greated",
1596 | "email": "fgreated3n@about.me",
1597 | "dob": "1992-02-07T17:55:06Z",
1598 | "gender": "Female",
1599 | "education": "Post Graduate",
1600 | "company": "JumpXS",
1601 | "experience": 70,
1602 | "package": 16
1603 | },
1604 | {
1605 | "id": 133,
1606 | "firstName": "Alfy",
1607 | "lastName": "Shakelade",
1608 | "email": "ashakelade3o@earthlink.net",
1609 | "dob": "2003-07-16T20:09:03Z",
1610 | "gender": "Female",
1611 | "education": "Intermediate",
1612 | "company": "Skyba",
1613 | "experience": 71,
1614 | "package": 29
1615 | },
1616 | {
1617 | "id": 134,
1618 | "firstName": "Coral",
1619 | "lastName": "Duggen",
1620 | "email": "cduggen3p@facebook.com",
1621 | "dob": "1981-02-15T03:28:16Z",
1622 | "gender": "Female",
1623 | "education": "Diploma",
1624 | "company": "Jaxbean",
1625 | "experience": 78,
1626 | "package": 6
1627 | },
1628 | {
1629 | "id": 135,
1630 | "firstName": "Claudio",
1631 | "lastName": "Pobjay",
1632 | "email": "cpobjay3q@naver.com",
1633 | "dob": "1984-03-05T00:16:12Z",
1634 | "gender": "Male",
1635 | "education": "Intermediate",
1636 | "company": "Mymm",
1637 | "experience": 76,
1638 | "package": 8
1639 | },
1640 | {
1641 | "id": 136,
1642 | "firstName": "Rurik",
1643 | "lastName": "Championnet",
1644 | "email": "rchampionnet3r@usa.gov",
1645 | "dob": "2000-10-24T13:52:26Z",
1646 | "gender": "Male",
1647 | "education": "Intermediate",
1648 | "company": "Centizu",
1649 | "experience": 45,
1650 | "package": 36
1651 | },
1652 | {
1653 | "id": 137,
1654 | "firstName": "Bev",
1655 | "lastName": "Reilly",
1656 | "email": "breilly3s@seattletimes.com",
1657 | "dob": "1994-12-10T22:50:01Z",
1658 | "gender": "Male",
1659 | "education": "Graduate",
1660 | "company": "Devify",
1661 | "experience": 61,
1662 | "package": 32
1663 | },
1664 | {
1665 | "id": 138,
1666 | "firstName": "Kiri",
1667 | "lastName": "Challace",
1668 | "email": "kchallace3t@shinystat.com",
1669 | "dob": "2001-11-07T08:59:39Z",
1670 | "gender": "Female",
1671 | "education": "Matric",
1672 | "company": "Quatz",
1673 | "experience": 5,
1674 | "package": 12
1675 | },
1676 | {
1677 | "id": 139,
1678 | "firstName": "Alexis",
1679 | "lastName": "Sharpless",
1680 | "email": "asharpless3u@mac.com",
1681 | "dob": "2003-12-07T01:52:15Z",
1682 | "gender": "Female",
1683 | "education": "Matric",
1684 | "company": "Thoughtsphere",
1685 | "experience": 44,
1686 | "package": 30
1687 | },
1688 | {
1689 | "id": 140,
1690 | "firstName": "Aylmer",
1691 | "lastName": "Dacke",
1692 | "email": "adacke3v@spotify.com",
1693 | "dob": "1999-10-09T16:19:19Z",
1694 | "gender": "Male",
1695 | "education": "Graduate",
1696 | "company": "Kanoodle",
1697 | "experience": 82,
1698 | "package": 18
1699 | },
1700 | {
1701 | "id": 141,
1702 | "firstName": "Elysia",
1703 | "lastName": "Alger",
1704 | "email": "ealger3w@shinystat.com",
1705 | "dob": "1985-09-15T14:37:48Z",
1706 | "gender": "Female",
1707 | "education": "Intermediate",
1708 | "company": "Yata",
1709 | "experience": 78,
1710 | "package": 26
1711 | },
1712 | {
1713 | "id": 142,
1714 | "firstName": "Jaimie",
1715 | "lastName": "Wreiford",
1716 | "email": "jwreiford3x@biglobe.ne.jp",
1717 | "dob": "1996-05-12T08:54:42Z",
1718 | "gender": "Male",
1719 | "education": "Graduate",
1720 | "company": "Skipfire",
1721 | "experience": 48,
1722 | "package": 5
1723 | },
1724 | {
1725 | "id": 143,
1726 | "firstName": "Yoshiko",
1727 | "lastName": "Worswick",
1728 | "email": "yworswick3y@sciencedirect.com",
1729 | "dob": "1987-06-22T00:32:44Z",
1730 | "gender": "Non-binary",
1731 | "education": "Graduate",
1732 | "company": "Skyndu",
1733 | "experience": 54,
1734 | "package": 24
1735 | },
1736 | {
1737 | "id": 144,
1738 | "firstName": "Laird",
1739 | "lastName": "Shelly",
1740 | "email": "lshelly3z@exblog.jp",
1741 | "dob": "2003-12-21T00:06:36Z",
1742 | "gender": "Male",
1743 | "education": "Intermediate",
1744 | "company": "Jaxspan",
1745 | "experience": 15,
1746 | "package": 20
1747 | },
1748 | {
1749 | "id": 145,
1750 | "firstName": "Heywood",
1751 | "lastName": "Biner",
1752 | "email": "hbiner40@newyorker.com",
1753 | "dob": "1984-10-28T21:40:21Z",
1754 | "gender": "Male",
1755 | "education": "Graduate",
1756 | "company": "Aivee",
1757 | "experience": 77,
1758 | "package": 9
1759 | },
1760 | {
1761 | "id": 146,
1762 | "firstName": "Bing",
1763 | "lastName": "Britian",
1764 | "email": "bbritian41@4shared.com",
1765 | "dob": "2000-09-19T15:22:23Z",
1766 | "gender": "Male",
1767 | "education": "Matric",
1768 | "company": "Edgeify",
1769 | "experience": 57,
1770 | "package": 23
1771 | },
1772 | {
1773 | "id": 147,
1774 | "firstName": "Ollie",
1775 | "lastName": "Doby",
1776 | "email": "odoby42@nifty.com",
1777 | "dob": "2000-05-22T01:05:45Z",
1778 | "gender": "Female",
1779 | "education": "Post Graduate",
1780 | "company": "Flashpoint",
1781 | "experience": 7,
1782 | "package": 16
1783 | },
1784 | {
1785 | "id": 148,
1786 | "firstName": "Ali",
1787 | "lastName": "Pomfrett",
1788 | "email": "apomfrett43@rakuten.co.jp",
1789 | "dob": "1992-12-25T21:46:44Z",
1790 | "gender": "Male",
1791 | "education": "Graduate",
1792 | "company": "Voonte",
1793 | "experience": 3,
1794 | "package": 9
1795 | },
1796 | {
1797 | "id": 149,
1798 | "firstName": "Worthington",
1799 | "lastName": "Dronsfield",
1800 | "email": "wdronsfield44@flickr.com",
1801 | "dob": "2002-08-24T12:45:27Z",
1802 | "gender": "Male",
1803 | "education": "Intermediate",
1804 | "company": "Wikivu",
1805 | "experience": 94,
1806 | "package": 29
1807 | },
1808 | {
1809 | "id": 150,
1810 | "firstName": "Tristam",
1811 | "lastName": "Geerdts",
1812 | "email": "tgeerdts45@diigo.com",
1813 | "dob": "1986-02-02T02:48:09Z",
1814 | "gender": "Male",
1815 | "education": "Intermediate",
1816 | "company": "Fadeo",
1817 | "experience": 11,
1818 | "package": 24
1819 | },
1820 | {
1821 | "id": 151,
1822 | "firstName": "Cecilio",
1823 | "lastName": "Fearnley",
1824 | "email": "cfearnley46@last.fm",
1825 | "dob": "1992-10-14T00:43:34Z",
1826 | "gender": "Male",
1827 | "education": "Intermediate",
1828 | "company": "Mybuzz",
1829 | "experience": 60,
1830 | "package": 21
1831 | },
1832 | {
1833 | "id": 152,
1834 | "firstName": "Ilse",
1835 | "lastName": "Gonning",
1836 | "email": "igonning47@last.fm",
1837 | "dob": "2002-03-13T21:38:39Z",
1838 | "gender": "Female",
1839 | "education": "Intermediate",
1840 | "company": "Rhynyx",
1841 | "experience": 34,
1842 | "package": 5
1843 | },
1844 | {
1845 | "id": 153,
1846 | "firstName": "Howard",
1847 | "lastName": "Doubleday",
1848 | "email": "hdoubleday48@shop-pro.jp",
1849 | "dob": "1989-05-30T19:46:11Z",
1850 | "gender": "Male",
1851 | "education": "Post Graduate",
1852 | "company": "Kwilith",
1853 | "experience": 67,
1854 | "package": 18
1855 | },
1856 | {
1857 | "id": 154,
1858 | "firstName": "Ronalda",
1859 | "lastName": "Guidelli",
1860 | "email": "rguidelli49@is.gd",
1861 | "dob": "2001-11-20T22:27:55Z",
1862 | "gender": "Female",
1863 | "education": "Matric",
1864 | "company": "Mynte",
1865 | "experience": 6,
1866 | "package": 34
1867 | },
1868 | {
1869 | "id": 155,
1870 | "firstName": "Jemmie",
1871 | "lastName": "Iban",
1872 | "email": "jiban4a@networksolutions.com",
1873 | "dob": "1985-10-24T07:07:52Z",
1874 | "gender": "Female",
1875 | "education": "Diploma",
1876 | "company": "InnoZ",
1877 | "experience": 89,
1878 | "package": 7
1879 | },
1880 | {
1881 | "id": 156,
1882 | "firstName": "Celesta",
1883 | "lastName": "Dashkov",
1884 | "email": "cdashkov4b@vkontakte.ru",
1885 | "dob": "1985-06-22T14:34:54Z",
1886 | "gender": "Female",
1887 | "education": "Post Graduate",
1888 | "company": "Roodel",
1889 | "experience": 35,
1890 | "package": 19
1891 | },
1892 | {
1893 | "id": 157,
1894 | "firstName": "Kliment",
1895 | "lastName": "Whittet",
1896 | "email": "kwhittet4c@cam.ac.uk",
1897 | "dob": "2003-01-31T11:35:03Z",
1898 | "gender": "Male",
1899 | "education": "Intermediate",
1900 | "company": "Npath",
1901 | "experience": 24,
1902 | "package": 36
1903 | },
1904 | {
1905 | "id": 158,
1906 | "firstName": "Cliff",
1907 | "lastName": "De Bernardis",
1908 | "email": "cdebernardis4d@amazonaws.com",
1909 | "dob": "1987-02-19T18:52:40Z",
1910 | "gender": "Male",
1911 | "education": "Diploma",
1912 | "company": "Wikido",
1913 | "experience": 10,
1914 | "package": 29
1915 | },
1916 | {
1917 | "id": 159,
1918 | "firstName": "Sherline",
1919 | "lastName": "Croyden",
1920 | "email": "scroyden4e@aol.com",
1921 | "dob": "1981-08-15T01:00:52Z",
1922 | "gender": "Female",
1923 | "education": "Post Graduate",
1924 | "company": "Fivebridge",
1925 | "experience": 68,
1926 | "package": 18
1927 | },
1928 | {
1929 | "id": 160,
1930 | "firstName": "Nadia",
1931 | "lastName": "Borrie",
1932 | "email": "nborrie4f@google.co.uk",
1933 | "dob": "1998-07-16T15:01:37Z",
1934 | "gender": "Female",
1935 | "education": "Diploma",
1936 | "company": "Mudo",
1937 | "experience": 69,
1938 | "package": 17
1939 | },
1940 | {
1941 | "id": 161,
1942 | "firstName": "Felipe",
1943 | "lastName": "Kyrkeman",
1944 | "email": "fkyrkeman4g@hhs.gov",
1945 | "dob": "1996-03-23T07:58:39Z",
1946 | "gender": "Male",
1947 | "education": "Diploma",
1948 | "company": "Pixope",
1949 | "experience": 56,
1950 | "package": 33
1951 | },
1952 | {
1953 | "id": 162,
1954 | "firstName": "Gerick",
1955 | "lastName": "Lowdiane",
1956 | "email": "glowdiane4h@friendfeed.com",
1957 | "dob": "1998-04-03T16:43:08Z",
1958 | "gender": "Male",
1959 | "education": "Post Graduate",
1960 | "company": "Jabbersphere",
1961 | "experience": 25,
1962 | "package": 20
1963 | },
1964 | {
1965 | "id": 163,
1966 | "firstName": "Wes",
1967 | "lastName": "Durrell",
1968 | "email": "wdurrell4i@list-manage.com",
1969 | "dob": "1983-04-10T07:05:55Z",
1970 | "gender": "Male",
1971 | "education": "Matric",
1972 | "company": "Ainyx",
1973 | "experience": 9,
1974 | "package": 15
1975 | },
1976 | {
1977 | "id": 164,
1978 | "firstName": "Heath",
1979 | "lastName": "Berriball",
1980 | "email": "hberriball4j@pbs.org",
1981 | "dob": "1988-10-09T06:14:11Z",
1982 | "gender": "Bigender",
1983 | "education": "Graduate",
1984 | "company": "Mydeo",
1985 | "experience": 34,
1986 | "package": 17
1987 | },
1988 | {
1989 | "id": 165,
1990 | "firstName": "Theodosia",
1991 | "lastName": "Alejo",
1992 | "email": "talejo4k@sourceforge.net",
1993 | "dob": "2002-03-23T23:41:54Z",
1994 | "gender": "Female",
1995 | "education": "Diploma",
1996 | "company": "Skyble",
1997 | "experience": 54,
1998 | "package": 30
1999 | },
2000 | {
2001 | "id": 166,
2002 | "firstName": "Electra",
2003 | "lastName": "Frankis",
2004 | "email": "efrankis4l@bizjournals.com",
2005 | "dob": "1993-02-02T01:49:12Z",
2006 | "gender": "Female",
2007 | "education": "Intermediate",
2008 | "company": "Dabvine",
2009 | "experience": 80,
2010 | "package": 5
2011 | },
2012 | {
2013 | "id": 167,
2014 | "firstName": "Stephi",
2015 | "lastName": "Corrin",
2016 | "email": "scorrin4m@tripod.com",
2017 | "dob": "1998-08-09T22:32:16Z",
2018 | "gender": "Female",
2019 | "education": "Diploma",
2020 | "company": "Flipstorm",
2021 | "experience": 11,
2022 | "package": 14
2023 | },
2024 | {
2025 | "id": 168,
2026 | "firstName": "Sherwin",
2027 | "lastName": "Bampfield",
2028 | "email": "sbampfield4n@cnet.com",
2029 | "dob": "1994-05-17T07:29:22Z",
2030 | "gender": "Male",
2031 | "education": "Matric",
2032 | "company": "Ntag",
2033 | "experience": 53,
2034 | "package": 12
2035 | },
2036 | {
2037 | "id": 169,
2038 | "firstName": "Donall",
2039 | "lastName": "Whyberd",
2040 | "email": "dwhyberd4o@unesco.org",
2041 | "dob": "1999-05-12T17:05:25Z",
2042 | "gender": "Male",
2043 | "education": "Post Graduate",
2044 | "company": "Edgeclub",
2045 | "experience": 86,
2046 | "package": 25
2047 | },
2048 | {
2049 | "id": 170,
2050 | "firstName": "Maren",
2051 | "lastName": "Fidian",
2052 | "email": "mfidian4p@is.gd",
2053 | "dob": "2004-01-21T11:25:30Z",
2054 | "gender": "Female",
2055 | "education": "Diploma",
2056 | "company": "Mycat",
2057 | "experience": 4,
2058 | "package": 16
2059 | },
2060 | {
2061 | "id": 171,
2062 | "firstName": "Sebastian",
2063 | "lastName": "Purver",
2064 | "email": "spurver4q@etsy.com",
2065 | "dob": "2003-12-12T17:12:55Z",
2066 | "gender": "Male",
2067 | "education": "Intermediate",
2068 | "company": "Riffpath",
2069 | "experience": 38,
2070 | "package": 25
2071 | },
2072 | {
2073 | "id": 172,
2074 | "firstName": "Stephine",
2075 | "lastName": "Stading",
2076 | "email": "sstading4r@bloomberg.com",
2077 | "dob": "1986-05-27T08:05:51Z",
2078 | "gender": "Female",
2079 | "education": "Graduate",
2080 | "company": "Gabcube",
2081 | "experience": 37,
2082 | "package": 33
2083 | },
2084 | {
2085 | "id": 173,
2086 | "firstName": "Salomo",
2087 | "lastName": "Cattrell",
2088 | "email": "scattrell4s@alexa.com",
2089 | "dob": "1996-11-24T17:30:36Z",
2090 | "gender": "Male",
2091 | "education": "Diploma",
2092 | "company": "Youbridge",
2093 | "experience": 80,
2094 | "package": 27
2095 | },
2096 | {
2097 | "id": 174,
2098 | "firstName": "Rayner",
2099 | "lastName": "Peeke-Vout",
2100 | "email": "rpeekevout4t@cdbaby.com",
2101 | "dob": "1985-09-11T20:28:06Z",
2102 | "gender": "Male",
2103 | "education": "Matric",
2104 | "company": "Skinder",
2105 | "experience": 44,
2106 | "package": 6
2107 | },
2108 | {
2109 | "id": 175,
2110 | "firstName": "Devonne",
2111 | "lastName": "Rogliero",
2112 | "email": "drogliero4u@alibaba.com",
2113 | "dob": "1989-12-10T09:08:47Z",
2114 | "gender": "Female",
2115 | "education": "Diploma",
2116 | "company": "Avavee",
2117 | "experience": 33,
2118 | "package": 7
2119 | },
2120 | {
2121 | "id": 176,
2122 | "firstName": "Monte",
2123 | "lastName": "Scarasbrick",
2124 | "email": "mscarasbrick4v@ow.ly",
2125 | "dob": "2000-11-08T16:05:33Z",
2126 | "gender": "Polygender",
2127 | "education": "Post Graduate",
2128 | "company": "Bluezoom",
2129 | "experience": 94,
2130 | "package": 26
2131 | },
2132 | {
2133 | "id": 177,
2134 | "firstName": "Danny",
2135 | "lastName": "Devers",
2136 | "email": "ddevers4w@dedecms.com",
2137 | "dob": "1987-12-29T12:13:42Z",
2138 | "gender": "Male",
2139 | "education": "Post Graduate",
2140 | "company": "Pixope",
2141 | "experience": 68,
2142 | "package": 29
2143 | },
2144 | {
2145 | "id": 178,
2146 | "firstName": "Toddie",
2147 | "lastName": "Kirke",
2148 | "email": "tkirke4x@flavors.me",
2149 | "dob": "1984-04-10T10:30:52Z",
2150 | "gender": "Male",
2151 | "education": "Post Graduate",
2152 | "company": "Gabtype",
2153 | "experience": 19,
2154 | "package": 16
2155 | },
2156 | {
2157 | "id": 179,
2158 | "firstName": "Elvis",
2159 | "lastName": "Kiddye",
2160 | "email": "ekiddye4y@mit.edu",
2161 | "dob": "1995-05-03T11:34:02Z",
2162 | "gender": "Male",
2163 | "education": "Intermediate",
2164 | "company": "Mymm",
2165 | "experience": 45,
2166 | "package": 29
2167 | },
2168 | {
2169 | "id": 180,
2170 | "firstName": "Lizzie",
2171 | "lastName": "Fowell",
2172 | "email": "lfowell4z@hibu.com",
2173 | "dob": "1984-03-16T05:17:39Z",
2174 | "gender": "Female",
2175 | "education": "Diploma",
2176 | "company": "Skipfire",
2177 | "experience": 11,
2178 | "package": 23
2179 | },
2180 | {
2181 | "id": 181,
2182 | "firstName": "Merry",
2183 | "lastName": "Samter",
2184 | "email": "msamter50@geocities.jp",
2185 | "dob": "2003-05-17T07:26:01Z",
2186 | "gender": "Female",
2187 | "education": "Post Graduate",
2188 | "company": "Tambee",
2189 | "experience": 98,
2190 | "package": 29
2191 | },
2192 | {
2193 | "id": 182,
2194 | "firstName": "Reba",
2195 | "lastName": "Starking",
2196 | "email": "rstarking51@drupal.org",
2197 | "dob": "1992-05-17T19:33:01Z",
2198 | "gender": "Female",
2199 | "education": "Matric",
2200 | "company": "Skyble",
2201 | "experience": 76,
2202 | "package": 17
2203 | },
2204 | {
2205 | "id": 183,
2206 | "firstName": "Trumann",
2207 | "lastName": "McCafferky",
2208 | "email": "tmccafferky52@indiegogo.com",
2209 | "dob": "1997-06-23T09:32:15Z",
2210 | "gender": "Male",
2211 | "education": "Matric",
2212 | "company": "Agivu",
2213 | "experience": 86,
2214 | "package": 5
2215 | },
2216 | {
2217 | "id": 184,
2218 | "firstName": "Hubey",
2219 | "lastName": "MacGovern",
2220 | "email": "hmacgovern53@photobucket.com",
2221 | "dob": "1983-11-05T17:32:17Z",
2222 | "gender": "Male",
2223 | "education": "Post Graduate",
2224 | "company": "Skyble",
2225 | "experience": 23,
2226 | "package": 27
2227 | },
2228 | {
2229 | "id": 185,
2230 | "firstName": "Elisabeth",
2231 | "lastName": "Mowday",
2232 | "email": "emowday54@mac.com",
2233 | "dob": "2004-10-18T00:36:01Z",
2234 | "gender": "Female",
2235 | "education": "Intermediate",
2236 | "company": "Janyx",
2237 | "experience": 20,
2238 | "package": 27
2239 | },
2240 | {
2241 | "id": 186,
2242 | "firstName": "Elspeth",
2243 | "lastName": "Dibbs",
2244 | "email": "edibbs55@zimbio.com",
2245 | "dob": "1981-02-19T09:17:12Z",
2246 | "gender": "Female",
2247 | "education": "Intermediate",
2248 | "company": "Babblestorm",
2249 | "experience": 25,
2250 | "package": 6
2251 | },
2252 | {
2253 | "id": 187,
2254 | "firstName": "Harold",
2255 | "lastName": "Lampke",
2256 | "email": "hlampke56@acquirethisname.com",
2257 | "dob": "2000-10-23T10:48:44Z",
2258 | "gender": "Male",
2259 | "education": "Graduate",
2260 | "company": "Browsebug",
2261 | "experience": 50,
2262 | "package": 34
2263 | },
2264 | {
2265 | "id": 188,
2266 | "firstName": "Katrina",
2267 | "lastName": "Yurikov",
2268 | "email": "kyurikov57@yandex.ru",
2269 | "dob": "1990-11-07T11:22:21Z",
2270 | "gender": "Female",
2271 | "education": "Graduate",
2272 | "company": "Feednation",
2273 | "experience": 100,
2274 | "package": 24
2275 | },
2276 | {
2277 | "id": 189,
2278 | "firstName": "Rosanna",
2279 | "lastName": "Errol",
2280 | "email": "rerrol58@w3.org",
2281 | "dob": "2001-08-26T04:42:25Z",
2282 | "gender": "Female",
2283 | "education": "Diploma",
2284 | "company": "Blogspan",
2285 | "experience": 25,
2286 | "package": 24
2287 | },
2288 | {
2289 | "id": 190,
2290 | "firstName": "Clarissa",
2291 | "lastName": "Kunat",
2292 | "email": "ckunat59@usa.gov",
2293 | "dob": "2004-05-18T01:28:52Z",
2294 | "gender": "Female",
2295 | "education": "Intermediate",
2296 | "company": "Oyope",
2297 | "experience": 57,
2298 | "package": 23
2299 | },
2300 | {
2301 | "id": 191,
2302 | "firstName": "Sheri",
2303 | "lastName": "Houndson",
2304 | "email": "shoundson5a@nhs.uk",
2305 | "dob": "1981-06-17T09:44:03Z",
2306 | "gender": "Female",
2307 | "education": "Matric",
2308 | "company": "Mycat",
2309 | "experience": 89,
2310 | "package": 21
2311 | },
2312 | {
2313 | "id": 192,
2314 | "firstName": "Bryn",
2315 | "lastName": "Bernardy",
2316 | "email": "bbernardy5b@purevolume.com",
2317 | "dob": "2001-11-02T14:01:41Z",
2318 | "gender": "Male",
2319 | "education": "Intermediate",
2320 | "company": "Skinix",
2321 | "experience": 50,
2322 | "package": 18
2323 | },
2324 | {
2325 | "id": 193,
2326 | "firstName": "Alexio",
2327 | "lastName": "Jirasek",
2328 | "email": "ajirasek5c@vinaora.com",
2329 | "dob": "1996-03-21T13:04:23Z",
2330 | "gender": "Male",
2331 | "education": "Diploma",
2332 | "company": "Mybuzz",
2333 | "experience": 39,
2334 | "package": 39
2335 | },
2336 | {
2337 | "id": 194,
2338 | "firstName": "Moritz",
2339 | "lastName": "Leverette",
2340 | "email": "mleverette5d@com.com",
2341 | "dob": "1997-11-12T12:25:06Z",
2342 | "gender": "Male",
2343 | "education": "Intermediate",
2344 | "company": "Yakijo",
2345 | "experience": 62,
2346 | "package": 24
2347 | },
2348 | {
2349 | "id": 195,
2350 | "firstName": "Bartram",
2351 | "lastName": "Rhead",
2352 | "email": "brhead5e@bloglines.com",
2353 | "dob": "2004-01-20T15:03:13Z",
2354 | "gender": "Male",
2355 | "education": "Intermediate",
2356 | "company": "Fivechat",
2357 | "experience": 39,
2358 | "package": 36
2359 | },
2360 | {
2361 | "id": 196,
2362 | "firstName": "Marcille",
2363 | "lastName": "Accombe",
2364 | "email": "maccombe5f@hostgator.com",
2365 | "dob": "1997-03-16T23:51:10Z",
2366 | "gender": "Female",
2367 | "education": "Matric",
2368 | "company": "Skimia",
2369 | "experience": 99,
2370 | "package": 18
2371 | },
2372 | {
2373 | "id": 197,
2374 | "firstName": "Olympia",
2375 | "lastName": "Gaughan",
2376 | "email": "ogaughan5g@instagram.com",
2377 | "dob": "1998-03-13T16:27:41Z",
2378 | "gender": "Female",
2379 | "education": "Post Graduate",
2380 | "company": "Abatz",
2381 | "experience": 10,
2382 | "package": 11
2383 | },
2384 | {
2385 | "id": 198,
2386 | "firstName": "Juliet",
2387 | "lastName": "Ottey",
2388 | "email": "jottey5h@reuters.com",
2389 | "dob": "1986-01-06T19:46:06Z",
2390 | "gender": "Genderfluid",
2391 | "education": "Post Graduate",
2392 | "company": "Gabspot",
2393 | "experience": 51,
2394 | "package": 20
2395 | },
2396 | {
2397 | "id": 199,
2398 | "firstName": "Nancy",
2399 | "lastName": "Gladdis",
2400 | "email": "ngladdis5i@posterous.com",
2401 | "dob": "2001-11-15T10:33:48Z",
2402 | "gender": "Female",
2403 | "education": "Graduate",
2404 | "company": "Flashpoint",
2405 | "experience": 20,
2406 | "package": 17
2407 | },
2408 | {
2409 | "id": 200,
2410 | "firstName": "Rhona",
2411 | "lastName": "Pickup",
2412 | "email": "rpickup5j@yandex.ru",
2413 | "dob": "1985-03-06T18:31:22Z",
2414 | "gender": "Female",
2415 | "education": "Intermediate",
2416 | "company": "Photobug",
2417 | "experience": 2,
2418 | "package": 16
2419 | }
2420 | ]
2421 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "crud-app",
3 | "version": "0.0.0",
4 | "scripts": {
5 | "ng": "ng",
6 | "start": "ng serve",
7 | "build": "ng build",
8 | "watch": "ng build --watch --configuration development",
9 | "test": "ng test"
10 | },
11 | "private": true,
12 | "dependencies": {
13 | "@angular/animations": "^15.0.0",
14 | "@angular/cdk": "^15.0.3",
15 | "@angular/common": "^15.0.0",
16 | "@angular/compiler": "^15.0.0",
17 | "@angular/core": "^15.0.0",
18 | "@angular/forms": "^15.0.0",
19 | "@angular/material": "^15.0.3",
20 | "@angular/platform-browser": "^15.0.0",
21 | "@angular/platform-browser-dynamic": "^15.0.0",
22 | "@angular/router": "^15.0.0",
23 | "rxjs": "~7.5.0",
24 | "tslib": "^2.3.0",
25 | "zone.js": "~0.12.0"
26 | },
27 | "devDependencies": {
28 | "@angular-devkit/build-angular": "^15.0.1",
29 | "@angular/cli": "~15.0.1",
30 | "@angular/compiler-cli": "^15.0.0",
31 | "@types/jasmine": "~4.3.0",
32 | "jasmine-core": "~4.5.0",
33 | "karma": "~6.4.0",
34 | "karma-chrome-launcher": "~3.1.0",
35 | "karma-coverage": "~2.2.0",
36 | "karma-jasmine": "~5.1.0",
37 | "karma-jasmine-html-reporter": "~2.0.0",
38 | "typescript": "~4.8.2"
39 | }
40 | }
--------------------------------------------------------------------------------
/src/app/app-routing.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { RouterModule, Routes } from '@angular/router';
3 |
4 | const routes: Routes = [];
5 |
6 | @NgModule({
7 | imports: [RouterModule.forRoot(routes)],
8 | exports: [RouterModule]
9 | })
10 | export class AppRoutingModule { }
11 |
--------------------------------------------------------------------------------
/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 | Crud Application
3 |
4 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Filter
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | ID |
24 | {{row.id}} |
25 |
26 |
27 |
28 |
29 | First Name |
30 | {{row.firstName}} |
31 |
32 |
33 |
34 | Last Name |
35 | {{row.lastName}} |
36 |
37 |
38 |
39 | Email |
40 | {{row.email}} |
41 |
42 |
43 |
44 | dob |
45 | {{row.dob | date}} |
46 |
47 |
48 |
49 | gender |
50 | {{row.gender}} |
51 |
52 |
53 |
54 | Education |
55 | {{row.education}} |
56 |
57 |
58 |
59 | Company |
60 | {{row.company}} |
61 |
62 |
63 |
64 | Exp. |
65 | {{row.experience}} |
66 |
67 |
68 |
69 | Package |
70 | {{row.package | currency:'INR'}}L |
71 |
72 |
73 |
74 | Action |
75 |
76 |
79 |
82 | |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | No data matching the filter "{{input.value}}" |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/src/app/app.component.scss:
--------------------------------------------------------------------------------
1 | .example-spacer {
2 | flex: 1 1 auto;
3 | }
4 |
5 | .main-body {
6 | padding-top: 20px;
7 | margin: 0 auto;
8 | max-width: 1348px;
9 | mat-form-field {
10 | width: 100%;
11 | }
12 | }
13 |
14 | .action {
15 | display: flex;
16 | gap: 5px;
17 | }
18 |
--------------------------------------------------------------------------------
/src/app/app.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 | import { RouterTestingModule } from '@angular/router/testing';
3 | import { AppComponent } from './app.component';
4 |
5 | describe('AppComponent', () => {
6 | beforeEach(async () => {
7 | await TestBed.configureTestingModule({
8 | imports: [
9 | RouterTestingModule
10 | ],
11 | declarations: [
12 | AppComponent
13 | ],
14 | }).compileComponents();
15 | });
16 |
17 | it('should create the app', () => {
18 | const fixture = TestBed.createComponent(AppComponent);
19 | const app = fixture.componentInstance;
20 | expect(app).toBeTruthy();
21 | });
22 |
23 | it(`should have as title 'crud-app'`, () => {
24 | const fixture = TestBed.createComponent(AppComponent);
25 | const app = fixture.componentInstance;
26 | expect(app.title).toEqual('crud-app');
27 | });
28 |
29 | it('should render title', () => {
30 | const fixture = TestBed.createComponent(AppComponent);
31 | fixture.detectChanges();
32 | const compiled = fixture.nativeElement as HTMLElement;
33 | expect(compiled.querySelector('.content span')?.textContent).toContain('crud-app app is running!');
34 | });
35 | });
36 |
--------------------------------------------------------------------------------
/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit, ViewChild } from '@angular/core';
2 | import { MatDialog } from '@angular/material/dialog';
3 | import { EmpAddEditComponent } from './emp-add-edit/emp-add-edit.component';
4 | import { EmployeeService } from './services/employee.service';
5 | import { MatPaginator } from '@angular/material/paginator';
6 | import { MatSort } from '@angular/material/sort';
7 | import { MatTableDataSource } from '@angular/material/table';
8 | import { CoreService } from './core/core.service';
9 |
10 | @Component({
11 | selector: 'app-root',
12 | templateUrl: './app.component.html',
13 | styleUrls: ['./app.component.scss'],
14 | })
15 | export class AppComponent implements OnInit {
16 | displayedColumns: string[] = [
17 | 'id',
18 | 'firstName',
19 | 'lastName',
20 | 'email',
21 | 'dob',
22 | 'gender',
23 | 'education',
24 | 'company',
25 | 'experience',
26 | 'package',
27 | 'action',
28 | ];
29 | dataSource!: MatTableDataSource;
30 |
31 | @ViewChild(MatPaginator) paginator!: MatPaginator;
32 | @ViewChild(MatSort) sort!: MatSort;
33 |
34 | constructor(
35 | private _dialog: MatDialog,
36 | private _empService: EmployeeService,
37 | private _coreService: CoreService
38 | ) {}
39 |
40 | ngOnInit(): void {
41 | this.getEmployeeList();
42 | }
43 |
44 | openAddEditEmpForm() {
45 | const dialogRef = this._dialog.open(EmpAddEditComponent);
46 | dialogRef.afterClosed().subscribe({
47 | next: (val) => {
48 | if (val) {
49 | this.getEmployeeList();
50 | }
51 | },
52 | });
53 | }
54 |
55 | getEmployeeList() {
56 | this._empService.getEmployeeList().subscribe({
57 | next: (res) => {
58 | this.dataSource = new MatTableDataSource(res);
59 | this.dataSource.sort = this.sort;
60 | this.dataSource.paginator = this.paginator;
61 | },
62 | error: console.log,
63 | });
64 | }
65 |
66 | applyFilter(event: Event) {
67 | const filterValue = (event.target as HTMLInputElement).value;
68 | this.dataSource.filter = filterValue.trim().toLowerCase();
69 |
70 | if (this.dataSource.paginator) {
71 | this.dataSource.paginator.firstPage();
72 | }
73 | }
74 |
75 | deleteEmployee(id: number) {
76 | this._empService.deleteEmployee(id).subscribe({
77 | next: (res) => {
78 | this._coreService.openSnackBar('Employee deleted!', 'done');
79 | this.getEmployeeList();
80 | },
81 | error: console.log,
82 | });
83 | }
84 |
85 | openEditForm(data: any) {
86 | const dialogRef = this._dialog.open(EmpAddEditComponent, {
87 | data,
88 | });
89 |
90 | dialogRef.afterClosed().subscribe({
91 | next: (val) => {
92 | if (val) {
93 | this.getEmployeeList();
94 | }
95 | },
96 | });
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/src/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { BrowserModule } from '@angular/platform-browser';
3 |
4 | import { AppRoutingModule } from './app-routing.module';
5 | import { AppComponent } from './app.component';
6 | import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
7 | import { MatToolbarModule } from '@angular/material/toolbar';
8 | import { MatIconModule } from '@angular/material/icon';
9 | import { MatButtonModule } from '@angular/material/button';
10 | import { EmpAddEditComponent } from './emp-add-edit/emp-add-edit.component';
11 | import { MatDialogModule } from '@angular/material/dialog';
12 | import { MatFormFieldModule } from '@angular/material/form-field';
13 | import { MatInputModule } from '@angular/material/input';
14 | import { MatDatepickerModule } from '@angular/material/datepicker';
15 | import { MatNativeDateModule } from '@angular/material/core';
16 | import { MatRadioModule } from '@angular/material/radio';
17 | import { MatSelectModule } from '@angular/material/select';
18 | import { ReactiveFormsModule } from '@angular/forms';
19 | import { HttpClientModule } from '@angular/common/http';
20 | import { MatTableModule } from '@angular/material/table';
21 | import { MatPaginatorModule } from '@angular/material/paginator';
22 | import { MatSortModule } from '@angular/material/sort';
23 | import { MatSnackBarModule } from '@angular/material/snack-bar';
24 |
25 | @NgModule({
26 | declarations: [AppComponent, EmpAddEditComponent],
27 | imports: [
28 | BrowserModule,
29 | AppRoutingModule,
30 | BrowserAnimationsModule,
31 | MatToolbarModule,
32 | MatIconModule,
33 | MatButtonModule,
34 | MatDialogModule,
35 | MatFormFieldModule,
36 | MatInputModule,
37 | MatDatepickerModule,
38 | MatNativeDateModule,
39 | MatRadioModule,
40 | MatSelectModule,
41 | ReactiveFormsModule,
42 | HttpClientModule,
43 | MatTableModule,
44 | MatPaginatorModule,
45 | MatSortModule,
46 | MatSnackBarModule,
47 | ],
48 | providers: [],
49 | bootstrap: [AppComponent],
50 | })
51 | export class AppModule {}
52 |
--------------------------------------------------------------------------------
/src/app/core/core.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { CoreService } from './core.service';
4 |
5 | describe('CoreService', () => {
6 | let service: CoreService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(CoreService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/core/core.service.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 | import { MatSnackBar } from '@angular/material/snack-bar';
3 |
4 | @Injectable({
5 | providedIn: 'root',
6 | })
7 | export class CoreService {
8 | constructor(private _snackBar: MatSnackBar) {}
9 |
10 | openSnackBar(message: string, action: string = 'ok') {
11 | this._snackBar.open(message, action, {
12 | duration: 1000,
13 | verticalPosition: 'top',
14 | });
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/app/emp-add-edit/emp-add-edit.component.html:
--------------------------------------------------------------------------------
1 |
2 |
Employee Form
3 |
4 |
--------------------------------------------------------------------------------
/src/app/emp-add-edit/emp-add-edit.component.scss:
--------------------------------------------------------------------------------
1 | .content {
2 | padding-top: 10px;
3 | }
4 | .row {
5 | display: flex;
6 | gap: 10px;
7 |
8 | mat-form-field {
9 | width: 100%;
10 | }
11 | }
12 |
13 | .action {
14 | padding: 0px 25px 20px;
15 | button {
16 | flex: 1;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/app/emp-add-edit/emp-add-edit.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { EmpAddEditComponent } from './emp-add-edit.component';
4 |
5 | describe('EmpAddEditComponent', () => {
6 | let component: EmpAddEditComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | declarations: [ EmpAddEditComponent ]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(EmpAddEditComponent);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/app/emp-add-edit/emp-add-edit.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, Inject, OnInit } from '@angular/core';
2 | import { FormBuilder, FormGroup } from '@angular/forms';
3 | import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
4 | import { CoreService } from '../core/core.service';
5 | import { EmployeeService } from '../services/employee.service';
6 |
7 | @Component({
8 | selector: 'app-emp-add-edit',
9 | templateUrl: './emp-add-edit.component.html',
10 | styleUrls: ['./emp-add-edit.component.scss'],
11 | })
12 | export class EmpAddEditComponent implements OnInit {
13 | empForm: FormGroup;
14 |
15 | education: string[] = [
16 | 'Matric',
17 | 'Diploma',
18 | 'Intermediate',
19 | 'Graduate',
20 | 'Post Graduate',
21 | ];
22 |
23 | constructor(
24 | private _fb: FormBuilder,
25 | private _empService: EmployeeService,
26 | private _dialogRef: MatDialogRef,
27 | @Inject(MAT_DIALOG_DATA) public data: any,
28 | private _coreService: CoreService
29 | ) {
30 | this.empForm = this._fb.group({
31 | firstName: '',
32 | lastName: '',
33 | email: '',
34 | dob: '',
35 | gender: '',
36 | education: '',
37 | company: '',
38 | experience: '',
39 | package: '',
40 | });
41 | }
42 |
43 | ngOnInit(): void {
44 | this.empForm.patchValue(this.data);
45 | }
46 |
47 | onFormSubmit() {
48 | if (this.empForm.valid) {
49 | if (this.data) {
50 | this._empService
51 | .updateEmployee(this.data.id, this.empForm.value)
52 | .subscribe({
53 | next: (val: any) => {
54 | this._coreService.openSnackBar('Employee detail updated!');
55 | this._dialogRef.close(true);
56 | },
57 | error: (err: any) => {
58 | console.error(err);
59 | },
60 | });
61 | } else {
62 | this._empService.addEmployee(this.empForm.value).subscribe({
63 | next: (val: any) => {
64 | this._coreService.openSnackBar('Employee added successfully');
65 | this._dialogRef.close(true);
66 | },
67 | error: (err: any) => {
68 | console.error(err);
69 | },
70 | });
71 | }
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/src/app/services/employee.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { EmployeeService } from './employee.service';
4 |
5 | describe('EmployeeService', () => {
6 | let service: EmployeeService;
7 |
8 | beforeEach(() => {
9 | TestBed.configureTestingModule({});
10 | service = TestBed.inject(EmployeeService);
11 | });
12 |
13 | it('should be created', () => {
14 | expect(service).toBeTruthy();
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/src/app/services/employee.service.ts:
--------------------------------------------------------------------------------
1 | import { HttpClient } from '@angular/common/http';
2 | import { Injectable } from '@angular/core';
3 | import { Observable } from 'rxjs';
4 |
5 | @Injectable({
6 | providedIn: 'root',
7 | })
8 | export class EmployeeService {
9 | constructor(private _http: HttpClient) {}
10 |
11 | addEmployee(data: any): Observable {
12 | return this._http.post('http://localhost:3000/employees', data);
13 | }
14 |
15 | updateEmployee(id: number, data: any): Observable {
16 | return this._http.put(`http://localhost:3000/employees/${id}`, data);
17 | }
18 |
19 | getEmployeeList(): Observable {
20 | return this._http.get('http://localhost:3000/employees');
21 | }
22 |
23 | deleteEmployee(id: number): Observable {
24 | return this._http.delete(`http://localhost:3000/employees/${id}`);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tariqu/angular-crud-app/ff5842f0ff78c11328bd699991b60058fa36b208/src/assets/.gitkeep
--------------------------------------------------------------------------------
/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tariqu/angular-crud-app/ff5842f0ff78c11328bd699991b60058fa36b208/src/favicon.ico
--------------------------------------------------------------------------------
/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CrudApp
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2 |
3 | import { AppModule } from './app/app.module';
4 |
5 |
6 | platformBrowserDynamic().bootstrapModule(AppModule)
7 | .catch(err => console.error(err));
8 |
--------------------------------------------------------------------------------
/src/styles.scss:
--------------------------------------------------------------------------------
1 | /* You can add global styles to this file, and also import other style files */
2 |
3 | html, body { height: 100%; }
4 | body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; }
5 |
--------------------------------------------------------------------------------
/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */
2 | {
3 | "extends": "./tsconfig.json",
4 | "compilerOptions": {
5 | "outDir": "./out-tsc/app",
6 | "types": []
7 | },
8 | "files": [
9 | "src/main.ts"
10 | ],
11 | "include": [
12 | "src/**/*.d.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */
2 | {
3 | "compileOnSave": false,
4 | "compilerOptions": {
5 | "baseUrl": "./",
6 | "outDir": "./dist/out-tsc",
7 | "forceConsistentCasingInFileNames": true,
8 | "strict": true,
9 | "noImplicitOverride": true,
10 | "noPropertyAccessFromIndexSignature": true,
11 | "noImplicitReturns": true,
12 | "noFallthroughCasesInSwitch": true,
13 | "sourceMap": true,
14 | "declaration": false,
15 | "downlevelIteration": true,
16 | "experimentalDecorators": true,
17 | "moduleResolution": "node",
18 | "importHelpers": true,
19 | "target": "ES2022",
20 | "module": "ES2022",
21 | "useDefineForClassFields": false,
22 | "lib": [
23 | "ES2022",
24 | "dom"
25 | ]
26 | },
27 | "angularCompilerOptions": {
28 | "enableI18nLegacyMessageIdFormat": false,
29 | "strictInjectionParameters": true,
30 | "strictInputAccessModifiers": true,
31 | "strictTemplates": true
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */
2 | {
3 | "extends": "./tsconfig.json",
4 | "compilerOptions": {
5 | "outDir": "./out-tsc/spec",
6 | "types": [
7 | "jasmine"
8 | ]
9 | },
10 | "include": [
11 | "src/**/*.spec.ts",
12 | "src/**/*.d.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------