├── .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 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 |
ID {{row.id}} First Name {{row.firstName}} Last Name {{row.lastName}} Email {{row.email}} dob {{row.dob | date}} gender {{row.gender}} Education {{row.education}} Company {{row.company}} Exp. {{row.experience}} Package {{row.package | currency:'INR'}}L Action 76 | 79 | 82 |
No data matching the filter "{{input.value}}"
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 |
5 |
6 |
7 | 8 | First name 9 | 10 | 11 | 12 | Last Name 13 | 14 | 15 |
16 | 17 |
18 | 19 | Email 20 | 21 | 22 | 23 | Date of birth 24 | 25 | MM/DD/YYYY 26 | 27 | 28 | 29 |
30 | 31 |
32 | 33 | Gender 34 | Male 35 | Female 36 | Others 37 | 38 |
39 | 40 |
41 | 42 | Education 43 | 44 | {{val}} 45 | 46 | 47 | 48 | 49 | Company 50 | 51 | 52 |
53 |
54 | 55 | Experience 56 | 57 | 58 | 59 | Package 60 | 61 | In rupees 62 | 63 |
64 |
65 |
66 | 67 | 68 |
69 |
-------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------