MEAN Stack - Assessment
!! Read each instruction carefully !!
Score (Total 100 points)
- Node, Express and Mongo: 40 points
- Angular: 30 points
- Code Quality & Code Documentation: 30 points
Understanding of data and schema
We are providing a set of career dataset, This dataset having total 1473 records. In the below you will find a sample record.
{
"title": "Leather craftworker",
"category": "Manufacturing",
"altTitle": ["Leather worker", "saddler"],
"description": "Leather craftworkers make clothes, shoes and accessories from leather, using traditional methods.",
"weeklyWorkHours": {
"max": 40,
"min": 38,
"schedule": "a week"
},
"url": "https://nationalcareers.service.gov.uk/job-profiles/leather-craftworker",
"slug": "manufacturing-leather-craftworker",
"yearlyAvgSalary": [
{
"currency": "GBP",
"type": "starter",
"value": 14000
},
{
"currency": "GBP",
"type": "experienced",
"value": 22000
}
]
}
Description of major field
Field | Type | Description |
---|---|---|
title | string | Title of career profile |
altTitle | array< string > | Alternative title of career profile |
category | string | career profile category |
slug | string | A unique identifier of each career profile |
Task 1 - Node, Express and Mongo [40 points]
- Download the dataset from here and dump the data into your local mongodb server.
- Db name should be
assestment_3_db
and collection name should becareer
. - Node and monogo DB connection credential should maintain via a configuartion file.
- Db name should be
- [ 30 Points ] Write a
GET
API, endpoint would be/search
. this endpoint should accept 2 parameters:text
andlimit
.- The search will perform on following filed into
career
collection :title
,altTitle
andcategory
. - Response data should be array of object and should content all filed of matched record except
url
. - Partial string match will also return data.
text
parameter should have a validation of minimum3
characters.limit
is an optional field. Maximum count of the result whould same as limit. defaultlimit
should be10
.- If search not matched then it should handled via proper status code.
- The search will perform on following filed into
- [ 10 Points ] Write a
GET
API, endpoint would be/profile/:slug
.- This api will return only one record or zero for invalid
slug
. /:slug
is the same filed into the collection of each record, namedslug
.
- This api will return only one record or zero for invalid
Task 2 - Angular [30 points]
- Angular version should be 10.
- [ 10 Points ] Create a
Seach
page which should access vialocalhost:port
- This page should have a input search text field. There should not be any button to trigger the
/search
api. The search API will automatically trigger as soon as input filed have minimum3
characters. - The response data will show into a
datatable
(must). Datatable should haveTitle
,Description
andAction
Button or link to navigate to theCareer Profile
page.
- This page should have a input search text field. There should not be any button to trigger the
- [ 20 Points ] Create a
Career Profile
page which should access vialocalhost:port/:slug
Source Code submition
Source code should be submit via provided google form link via email. Make a zip of 2 the source code (Angular and Node) without node_module
separatly. Size limit of each zip file is 10 MB. If the file size is more than 10 MB it means you have lots of junk file. We are not accepting such source code.