Run npm i to install dependencies
Warning for package dependencies vulnerabilities may come from time to time especially after a major release . it's usually a reminder to upgrade to avoid package exploits from a possible vulnerability
Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.
Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.
Run ng test to execute the unit tests via Karma.
contact me through my website(https://kjvelarde.com) or github(https://github.com/kjvelarde)
Here at Beam, we provide our members with "Beam Perks". These perks include the Beam Brush, Beam Paste, refill heads, and floss. Shipping is also included!
You will be providing a member with their very own "Member Details" page. From this page, they will be able to view their name, manage their shipping address, and view their selected brush options.
While npm has been initialized in this repo, you are not required to use this repo as a base. Feel free to create your own project! Just be sure to include the files from assets/ and data/ in some format in your new project.
Our only expectation is that your language or framework compiles down to JavaScript. Outside of that, you're welcome to use whatever you prefer!
Please include instructions detailing how to run your submission in the README.
You may have noticed: there is no mockup or prototype provided. You have free rein in the UI/UX Design of this exercise!
That's not to say we expect you to be a UI/UX Designer. At a minimum, we're just expecting to see tasteful alignment and use of the theme styles we've provided in /assets/css/styles.css.
Please include tests with your submission. Instructions for running your tests should be included in the README.
Once you're happy with your submission, you can send it back in one of two formats; either as a git bundle or a zip file.
To create the git bundle simply execute:
cd boxing-exercise
git bundle create boxing-exercise.bundle <YOUR BRANCH NAME HERE>This will create a .bundle file which contains the entire git repository in binary form, so you can easily send it as an attachment. Alternately you could zip the project instead.
The steps for this exercise are broken out into user stories below.
As a Beam Member In order to view my member information I would like to have a Member Details page
Acceptance Criteria
- There is a page for member details.
- The page has a title of "Member Details".
- The Beam logo (see
assets/images/beam_logo.svg) is displayed at the top of the page.
As a Beam Member In order to confirm I am on the correct Member page I would like to view my name
Acceptance Criteria
- The member's
nameis displayed on the page. (See Fetching the Member Data) - It is displayed with a "Name" label.
As a Beam Member In order to confirm my perks will be shipped to the correct address I would like to view my shipping address
Acceptance Criteria
- The member's
shipping_address,shipping_city,shipping_state, andshipping_zip_codeare all displayed on the page. (See Fetching the Member Data) - They are displayed below a "Shipping Address" section label.
As a Beam Member In order to be able to easily change my shipping address I would like the ability to update my shipping address on the Member Details page
Acceptance Criteria
- There is an "Edit" button in the "Shipping Address" section.
- When the "Edit" button is clicked:
- The Shipping Address section switches to an editable view.
- There is a form with fields for the
shipping_address,shipping_city,shipping_state, andshipping_zip_codevalues. The fields are labeled Address, City, State, and Zip Code, respectively. - There is an "Update" button below the form.
- When the "Update" button is clicked:
- The shipping address change is "saved". (An actual HTTP request is not required. The data change does not need to be persisted on reload.).
- The Shipping Address Section is switched back to the display-only view.
- The updated shipping address is displayed on the page.
As a Beam Member In order to confirm that my brush preferences are correct I would like to view my selected brush color, motor speed, and auto-off options.
Acceptance Criteria
- The member's
brush_coloris displayed on the page. (See Fetching the Member Data)- It is displayed with a "Brush Color" label.
- It has an icon beside it that displays the actual color. (See
.beam-brush-blue,.beam-brush-pink, and.beam-brush-chartreuseinassets/css/styles.css.)
- The member's
motor_speedandauto_offoptions are displayed on the page. (See Fetching the Member Data)- They are labeled Motor Speed and Auto Off, respectively.
- The displayed
auto_offvalue isYesfortrueandNoforfalse.
For this exercise, you'll be displaying the data for a member named "Remy LeBeau". We've gone ahead and searched for his name in the system. You can can read the data through our API layer at https://member-data.beam.dental/searchResults.json.
Unfortunately, his data has gotten a little messed up. There are some invalid records that you'll need to sort through to get his current data. The valid member record for Remy:
- Does not have a
primary_insured_id. (He's his own primary insured.) - Does not have a
terminated_atdate. (He still has insurance active.) - Has the most recent
effective_date. (Older ones might not be attached to the correct data anymore.)
Once you have the record for Remy, you'll need to use that to get his member preferences. You can find the member preferences at https://member-data.beam.dental/memberPreferences.json. Member preference records are tied to the member by the member_id. Use the id of the member record you found earlier to get the correct preferences.
The member record and member preferences for Remy should be fetched together via HTTP Request to allow for a smooth user viewing experience.