├── .gitignore ├── LICENSE ├── NOTICE.txt ├── README.md ├── caseStudy ├── services │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ ├── pojo │ │ │ │ ├── Company.java │ │ │ │ └── Stock.java │ │ │ ├── resources │ │ │ │ ├── CompanyResource.java │ │ │ │ └── StockResource.java │ │ │ └── utility │ │ │ │ └── InputValidator.java │ │ └── resources │ │ │ └── data │ │ │ ├── companyInfo.json │ │ │ ├── historicalStockData.json │ │ │ └── readme.txt │ │ └── test │ │ └── java │ │ ├── resources │ │ ├── CompanyResourceTest.java │ │ └── StockResourceTest.java │ │ └── utility │ │ └── InputValidatorTest.java └── ui │ ├── demo-captures │ ├── Thumbs.db │ ├── chart.PNG │ ├── datepicker.PNG │ └── typeahead.PNG │ ├── package.json │ ├── public │ ├── favicon.ico │ └── index.html │ ├── setup.txt │ └── src │ ├── App.js │ ├── components │ ├── Charts.js │ ├── Date.js │ ├── StockTicker.js │ └── charts │ │ └── LineChart.js │ ├── index.js │ ├── style │ ├── App.css │ └── index.css │ └── test │ └── App.test.js └── techCurriculum ├── services ├── EngineeringEssentialsServices │ ├── data │ │ ├── allParticipatingCountries.json │ │ ├── events.json │ │ └── single-event.json │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ ├── examples │ │ │ │ ├── Example10Resource.java │ │ │ │ ├── Example11Resource.java │ │ │ │ ├── Example12Resource.java │ │ │ │ ├── Example1Resource.java │ │ │ │ ├── Example2Resource.java │ │ │ │ ├── Example3Resource.java │ │ │ │ ├── Example4Resource.java │ │ │ │ ├── Example5Resource.java │ │ │ │ ├── Example6Resource.java │ │ │ │ ├── Example7Resource.java │ │ │ │ ├── Example8Resource.java │ │ │ │ └── Example9Resource.java │ │ │ ├── model │ │ │ │ ├── Country.java │ │ │ │ ├── Event.java │ │ │ │ ├── EventType.java │ │ │ │ ├── Player.java │ │ │ │ └── Team.java │ │ │ ├── server │ │ │ │ └── StarterApp.java │ │ │ ├── solutions │ │ │ │ ├── Example10SolutionResource.java │ │ │ │ ├── Example11SolutionResource.java │ │ │ │ ├── Example12SolutionResource.java │ │ │ │ ├── Example2SolutionResource.java │ │ │ │ ├── Example3SolutionResource.java │ │ │ │ ├── Example4SolutionResource.java │ │ │ │ ├── Example5SolutionResource.java │ │ │ │ ├── Example6SolutionResource.java │ │ │ │ ├── Example7SolutionResource.java │ │ │ │ ├── Example8SolutionResource.java │ │ │ │ └── Example9SolutionResource.java │ │ │ └── utility │ │ │ │ ├── CreateEvents.java │ │ │ │ ├── CustomJsonMapper.java │ │ │ │ ├── FileHelper.java │ │ │ │ ├── LocalDateDeserializer.java │ │ │ │ └── LocalDateSerializer.java │ │ └── resources │ │ │ └── backup │ │ │ ├── allParticipatingCountries.json │ │ │ ├── events.json │ │ │ └── single-event.json │ │ └── test │ │ └── java │ │ └── resources │ │ ├── ResourcesTest.java │ │ └── ResourcesTestSolutions.java └── pom.xml └── ui ├── LICENSE ├── extension-work.txt ├── goals.txt ├── setup.txt ├── solutions ├── 1.1 │ ├── 1.1.PNG │ └── src │ │ ├── App.js │ │ └── index.js ├── 2.1 │ └── src │ │ ├── App.js │ │ ├── components │ │ └── Title.js │ │ └── index.js ├── 2.2 │ └── src │ │ ├── App.js │ │ ├── components │ │ └── Title.js │ │ └── index.js ├── 2.3 │ └── src │ │ ├── App.js │ │ ├── components │ │ └── Title.js │ │ └── index.js ├── 2.4 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 2.5 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Message.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 2.6 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── Message.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 2.7 │ ├── 2.7.PNG │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── Message.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 3.1 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── Message.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 3.2 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── Message.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 3.3 │ ├── 3.3.PNG │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── Message.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 4.1 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── Message.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 4.2 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 4.3 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 4.4 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 4.5 │ ├── 4.5.PNG │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 4.6 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 4.7 │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 4.8 │ ├── 4.8.PNG │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 5.1 │ ├── package.json │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 5.2 │ ├── package.json │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 5.3 │ ├── 5.3.PNG │ ├── package.json │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 6.1 │ ├── 6.1.PNG │ ├── package.json │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 6.2 │ ├── 6.2.PNG │ ├── package.json │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ └── index.js ├── 7.1 │ ├── 7.1.PNG │ ├── package.json │ └── src │ │ ├── App.js │ │ ├── components │ │ ├── Card.js │ │ ├── CardForm.js │ │ ├── LineChart.js │ │ ├── Message.js │ │ ├── TextInput.js │ │ ├── Title.js │ │ └── User.js │ │ ├── data │ │ ├── jane_posts.json │ │ └── john_posts.json │ │ └── index.js └── SOLUTION_DIFF_URLS.txt └── starter_code ├── cards-app ├── .gitignore ├── README.md ├── package.json ├── public │ ├── favicon.ico │ └── index.html └── src │ ├── App.js │ ├── index.js │ └── stylesheet.css └── data ├── jane_posts.json └── john_posts.json /.gitignore: -------------------------------------------------------------------------------- 1 | *.DS_Store 2 | node_modules -------------------------------------------------------------------------------- /NOTICE.txt: -------------------------------------------------------------------------------- 1 | Engineering Essentials 2 | Copyright 2019 Goldman Sachs 3 | Licensed under Apache 2.0 license 4 | The Licensor does not indemnify the Licensee against infringement of any third party patent including, but not limited to, United States Patents 5,937,402 and 6,101,502. 5 | 6 | This product includes software developed at 7 | The Apache Software Foundation (http://www.apache.org/). 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pull Requests 2 | 3 | There is no contribution agreement in place, so we are not accepting external pull requests at this time. 4 | 5 | # Engineering Essentials 6 | 7 | Goldman Sachs Engineering Essentials is a four day program designed to help current college sophomores develop the essential skills and tools to prepare for a successful career as a software engineer. 8 | 9 | Read more at http://www.goldmansachs.com/careers/students/programs/americas/engineering-essentials.html 10 | 11 | ## Technical Curriculum 12 | 13 | As part of the technical curriculum, you will learn how to model a system, build RESTful services and create a user interface for your application. 14 | 15 | ## Case Study - Stock Visualization Application 16 | 17 | Apply the knowledge that you have learned from the modelling, services and UI learning sessions to build a stock visualization application 18 | -------------------------------------------------------------------------------- /caseStudy/services/pom.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 16 | 17 | 20 | 4.0.0 21 | 22 | engineering-essentials 23 | stock-visualization-app 24 | 1.0-SNAPSHOT 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /caseStudy/services/src/main/java/pojo/Company.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | package pojo; 18 | 19 | /** 20 | * This class will define a company and its attributes 21 | * Look at resources/data/companyInfo.json 22 | */ 23 | public class Company { 24 | 25 | // TODO - Think back to your modelling session 26 | // Define the attributes of a Company based on the 27 | // provided data in resources/data 28 | 29 | // TODO - add getter and setter methods for your attributes 30 | } 31 | -------------------------------------------------------------------------------- /caseStudy/services/src/main/java/pojo/Stock.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | package pojo; 18 | 19 | /** 20 | * This class will define a company's end-of-day stock price 21 | * Look at resources/data/historicalStockData.json 22 | */ 23 | public class Stock { 24 | 25 | // TODO - Think back to your modelling session 26 | // Define the attributes of a stock price based on the 27 | // provided data in resources/data 28 | 29 | // TODO - add getter and setter methods for your attributes 30 | } 31 | -------------------------------------------------------------------------------- /caseStudy/services/src/main/java/resources/CompanyResource.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | package resources; 18 | 19 | // TODO - add your @Path here 20 | public class CompanyResource { 21 | 22 | // TODO - Add a @GET resource to get company data 23 | // Your service should return data for a given stock ticker 24 | 25 | } 26 | -------------------------------------------------------------------------------- /caseStudy/services/src/main/java/resources/StockResource.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | package resources; 18 | 19 | // TODO - add your @Path here 20 | public class StockResource { 21 | 22 | // TODO - Add a @GET resource to get stock data 23 | // Your service should return data based on 3 inputs 24 | // Stock ticker, start date and end date 25 | 26 | } 27 | -------------------------------------------------------------------------------- /caseStudy/services/src/main/java/utility/InputValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | package utility; 18 | 19 | /** 20 | * Utility class to validate inputs 21 | */ 22 | public class InputValidator { 23 | 24 | // TODO - write a method that will validate your JSON input files 25 | 26 | // TODO - write a method that will validate the inputs to the Company Resource 27 | 28 | // TODO - write a method that will validate the inputs to the Stock Resource 29 | 30 | } 31 | -------------------------------------------------------------------------------- /caseStudy/services/src/main/resources/data/readme.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | Please note that the data in historicalStockData.json is fabricated 18 | and does not indicate any past, present or future market values. 19 | -------------------------------------------------------------------------------- /caseStudy/services/src/test/java/resources/CompanyResourceTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | package resources; 18 | 19 | /** 20 | * Write your tests for the Company Resource here 21 | */ 22 | public class CompanyResourceTest { 23 | 24 | // TODO - write a test for each method in the CompanyResource class 25 | // Think about both positive and negative test cases: 26 | // What happens if no inputs are passed? 27 | // What happens if the input is null? 28 | 29 | } 30 | -------------------------------------------------------------------------------- /caseStudy/services/src/test/java/resources/StockResourceTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | package resources; 18 | 19 | /** 20 | * Write your tests for the Stock Resource here 21 | */ 22 | public class StockResourceTest { 23 | 24 | // TODO - write a test for each method in the CompanyResource class 25 | // Think about both positive and negative test cases: 26 | // What happens if no inputs are passed? 27 | // What happens if the input is null? 28 | 29 | } 30 | -------------------------------------------------------------------------------- /caseStudy/services/src/test/java/utility/InputValidatorTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | package utility; 18 | 19 | /** 20 | * Write tests for the InputValidator class here 21 | */ 22 | public class InputValidatorTest { 23 | 24 | // TODO - write a test for each method in the InputValidator class 25 | 26 | } 27 | -------------------------------------------------------------------------------- /caseStudy/ui/demo-captures/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/caseStudy/ui/demo-captures/Thumbs.db -------------------------------------------------------------------------------- /caseStudy/ui/demo-captures/chart.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/caseStudy/ui/demo-captures/chart.PNG -------------------------------------------------------------------------------- /caseStudy/ui/demo-captures/datepicker.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/caseStudy/ui/demo-captures/datepicker.PNG -------------------------------------------------------------------------------- /caseStudy/ui/demo-captures/typeahead.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/caseStudy/ui/demo-captures/typeahead.PNG -------------------------------------------------------------------------------- /caseStudy/ui/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rename-this-to-your-app-name", 3 | "version": "0.0.1", 4 | "private": true, 5 | "devDependencies": { 6 | "react-scripts": "0.7.0" 7 | }, 8 | "dependencies": { 9 | "highcharts": "5.0.11", 10 | "moment": "^2.18.1", 11 | "react": "^15.3.2", 12 | "react-bootstrap-typeahead": "^1.3.0", 13 | "react-date-range": "^0.9.3", 14 | "react-datepicker": "^0.46.0", 15 | "react-dom": "^15.3.2", 16 | "react-input-autosize": "^1.1.0" 17 | }, 18 | "scripts": { 19 | "start": "react-scripts start", 20 | "build": "react-scripts build", 21 | "eject": "react-scripts eject" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /caseStudy/ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/caseStudy/ui/public/favicon.ico -------------------------------------------------------------------------------- /caseStudy/ui/setup.txt: -------------------------------------------------------------------------------- 1 | Copyright 2019 Goldman Sachs. 2 | Licensed under the Apache License, Version 2.0 (the "License"); 3 | you may not use this file except in compliance with the License. 4 | You may obtain a copy of the License at 5 | 6 | http://www.apache.org/licenses/LICENSE-2.0 7 | 8 | Unless required by applicable law or agreed to in writing, 9 | software distributed under the License is distributed on an 10 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations 13 | under the License. 14 | 15 | 16 | 17 | 18 | 1. Run "npm install". This should create a node_modules directory and download all the 19 | packages defined in package.json. 20 | 21 | 2. Run the skeleton using 22 | "npm start" 23 | 24 | 3. In the "src" directory, files have been provided for you with a few helpful tips 25 | on building your case study. There is some basic styling in "style/App.css" that you can modify as 26 | you wish. 27 | Note that not all of the packages "npm install" downloads are required to build your case study. 28 | You may choose to download and use different packages to build your components. 29 | 30 | 31 | 32 | 33 | If you're running out of time and still haven't been able to fetch all stock tickers, you may want to hard code 34 | all the stock tickers in a flat JSON file and read that in for your typeahead component 35 | -------------------------------------------------------------------------------- /caseStudy/ui/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './style/index.css'; 21 | 22 | ReactDOM.render( 23 | , 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /caseStudy/ui/src/style/App.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | 18 | .date { 19 | display: flex; 20 | flex-direction:row; 21 | } 22 | .date-input { 23 | margin-left: 1em; 24 | margin-right: 1em; 25 | } 26 | 27 | .date-range { 28 | display: flex; 29 | flex-direction:row; 30 | margin-left: 2em; 31 | float:right; 32 | } 33 | 34 | .stockticker { 35 | display: flex; 36 | flex-direction: column; 37 | float:left; 38 | } 39 | 40 | .ticker-input { 41 | display: flex; 42 | flex-direction:row; 43 | } 44 | 45 | .stockticker-typeahead { 46 | margin-left: 1em; 47 | } 48 | 49 | .company-info { 50 | margin-top: 1em; 51 | display: flex; 52 | flex-direction: column; 53 | } 54 | 55 | .input { 56 | display: flex; 57 | flex-direction:row; 58 | } 59 | 60 | .page-display { 61 | display: flex; 62 | flex-direction: column; 63 | } 64 | -------------------------------------------------------------------------------- /caseStudy/ui/src/style/index.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | body { 18 | margin: 0; 19 | padding: 20px; 20 | font-family: 'Roboto Condensed'; 21 | } 22 | -------------------------------------------------------------------------------- /caseStudy/ui/src/test/App.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from '../App'; 20 | 21 | it('renders without crashing', () => { 22 | const div = document.createElement('div'); 23 | ReactDOM.render(, div); 24 | }); 25 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/data/single-event.json: -------------------------------------------------------------------------------- 1 | { 2 | "eventType":"WaterPolo", 3 | "homeCountry": "Portugal", 4 | "awayCountry": "Australia", 5 | "date": "2018-02-27", 6 | "winningCountry": "Portugal", 7 | "losingCountry": "Australia", 8 | "winningScore": 22, 9 | "losingScore": 4 10 | } -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/examples/Example1Resource.java: -------------------------------------------------------------------------------- 1 | package examples; 2 | 3 | import javax.ws.rs.GET; 4 | import javax.ws.rs.Path; 5 | import javax.ws.rs.Produces; 6 | import javax.ws.rs.core.MediaType; 7 | import javax.ws.rs.core.Response; 8 | import java.io.IOException; 9 | 10 | /** 11 | * Copyright 2018 Goldman Sachs. 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, 19 | * software distributed under the License is distributed on an 20 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 21 | * KIND, either express or implied. See the License for the 22 | * specific language governing permissions and limitations 23 | * under the License. 24 | */ 25 | @Path("hello") 26 | public class Example1Resource { 27 | 28 | 29 | /** 30 | * Example 1 Instructions: 31 | * 32 | * 33 | * Run your StartApp with program Arguments: server 34 | * Go to http://localhost:8080/hello/ok and verify your server is running. 35 | */ 36 | 37 | @GET 38 | @Path("/ok") 39 | @Produces(MediaType.APPLICATION_JSON) 40 | public Response getResponse() throws IOException { 41 | return Response.status(Response.Status.OK).entity("Congratulations! You have Successfully started your Rest Server!").build(); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/examples/Example2Resource.java: -------------------------------------------------------------------------------- 1 | package examples; 2 | 3 | import javax.ws.rs.GET; 4 | import javax.ws.rs.Path; 5 | import javax.ws.rs.Produces; 6 | import javax.ws.rs.core.MediaType; 7 | 8 | /** 9 | * Copyright 2018 Goldman Sachs. 10 | * Licensed under the Apache License, Version 2.0 (the "License"); 11 | * you may not use this file except in compliance with the License. 12 | * You may obtain a copy of the License at 13 | * 14 | * http://www.apache.org/licenses/LICENSE-2.0 15 | * 16 | * Unless required by applicable law or agreed to in writing, 17 | * software distributed under the License is distributed on an 18 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 19 | * KIND, either express or implied. See the License for the 20 | * specific language governing permissions and limitations 21 | * under the License. 22 | */ 23 | @Path("events") 24 | public class Example2Resource { 25 | 26 | /** 27 | * Example 2 Instructions: 28 | * Modify the method below to return the String "Welcome to Engineering Essentials Services Training!" 29 | * 30 | * Restart the Server and visit http://localhost:8080/events/test 31 | */ 32 | @GET 33 | @Path("test") 34 | @Produces(MediaType.APPLICATION_JSON) 35 | public String helloWorld() { 36 | return "Hello, world!"; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/examples/Example4Resource.java: -------------------------------------------------------------------------------- 1 | package examples; 2 | 3 | 4 | import model.Event; 5 | 6 | import javax.ws.rs.GET; 7 | import javax.ws.rs.Path; 8 | import javax.ws.rs.Produces; 9 | import javax.ws.rs.core.MediaType; 10 | import javax.ws.rs.core.Response; 11 | 12 | /** 13 | * Copyright 2018 Goldman Sachs. 14 | * Licensed under the Apache License, Version 2.0 (the "License"); 15 | * you may not use this file except in compliance with the License. 16 | * You may obtain a copy of the License at 17 | *

18 | * http://www.apache.org/licenses/LICENSE-2.0 19 | *

20 | * Unless required by applicable law or agreed to in writing, 21 | * software distributed under the License is distributed on an 22 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 23 | * KIND, either express or implied. See the License for the 24 | * specific language governing permissions and limitations 25 | * under the License. 26 | */ 27 | @Path("events") 28 | public class Example4Resource { 29 | 30 | 31 | /** 32 | * Example 4 Instructions: 33 | * 34 | * Use the appropriate method from FileHelper.java (utility folder) to read in a single event from the file 35 | * "single-event.json" and return this event 36 | * 37 | * Hint: the method below is missing an annotation 38 | * 39 | * URL: http://localhost:8080/events/sample 40 | */ 41 | @Path("sample") 42 | @Produces(MediaType.APPLICATION_JSON) 43 | public Response getSampleEvent() { 44 | 45 | Event event = null; 46 | return Response.ok().entity(event).build(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/examples/Example5Resource.java: -------------------------------------------------------------------------------- 1 | package examples; 2 | 3 | 4 | import model.Event; 5 | 6 | import javax.ws.rs.GET; 7 | import javax.ws.rs.Path; 8 | import javax.ws.rs.Produces; 9 | import javax.ws.rs.core.MediaType; 10 | import javax.ws.rs.core.Response; 11 | import java.io.IOException; 12 | import java.util.ArrayList; 13 | import java.util.List; 14 | 15 | /** 16 | * Copyright 2018 Goldman Sachs. 17 | * Licensed under the Apache License, Version 2.0 (the "License"); 18 | * you may not use this file except in compliance with the License. 19 | * You may obtain a copy of the License at 20 | * 21 | * http://www.apache.org/licenses/LICENSE-2.0 22 | * 23 | * Unless required by applicable law or agreed to in writing, 24 | * software distributed under the License is distributed on an 25 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 26 | * KIND, either express or implied. See the License for the 27 | * specific language governing permissions and limitations 28 | * under the License. 29 | */ 30 | @Path("events") 31 | public class Example5Resource { 32 | 33 | 34 | /** 35 | * Example 5 Instructions: 36 | * 37 | * Add the proper @Produces Annotation to the method below 38 | * and then use the appropriate method from FileHelper to read and return 39 | * the list of all of the events in the events.json file 40 | * 41 | * URL: http://localhost:8080/events/all 42 | */ 43 | @GET 44 | @Path("all") 45 | public Response getAllEvents() throws IOException { 46 | 47 | List events = null; 48 | return Response.ok().entity(events).build(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/examples/Example6Resource.java: -------------------------------------------------------------------------------- 1 | package examples; 2 | 3 | 4 | import model.Country; 5 | 6 | import javax.ws.rs.GET; 7 | import javax.ws.rs.Path; 8 | import javax.ws.rs.Produces; 9 | import javax.ws.rs.core.MediaType; 10 | import javax.ws.rs.core.Response; 11 | import java.util.List; 12 | 13 | /** 14 | * Copyright 2018 Goldman Sachs. 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | @Path("events") 29 | public class Example6Resource { 30 | 31 | /** 32 | * Example 6 Instructions: 33 | * Add the functionality to return a list of Countries that participated in at least 1 event 34 | * 35 | * URL: http://localhost:8080/events/allParticipatingCountries 36 | * 37 | */ 38 | @GET 39 | @Path("replace") 40 | @Produces(MediaType.APPLICATION_JSON) 41 | public Response getAllParticipatingCountries() { 42 | 43 | List participatingCountries = null; 44 | return null; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/examples/Example8Resource.java: -------------------------------------------------------------------------------- 1 | package examples; 2 | 3 | import javax.ws.rs.GET; 4 | import javax.ws.rs.Path; 5 | import javax.ws.rs.PathParam; 6 | 7 | /** 8 | * Copyright 2018 Goldman Sachs. 9 | * Licensed under the Apache License, Version 2.0 (the "License"); 10 | * you may not use this file except in compliance with the License. 11 | * You may obtain a copy of the License at 12 | * 13 | * http://www.apache.org/licenses/LICENSE-2.0 14 | * 15 | * Unless required by applicable law or agreed to in writing, 16 | * software distributed under the License is distributed on an 17 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18 | * KIND, either express or implied. See the License for the 19 | * specific language governing permissions and limitations 20 | * under the License. 21 | */ 22 | @Path("events") 23 | public class Example8Resource { 24 | 25 | /** 26 | * Example 8 Instructions: 27 | * Fill in the method below so that for a given country, this endpoint returns the number of wins that country has 28 | * 29 | * Hint: Don't forget the @PathParam annotation 30 | * 31 | * URL: http://localhost:8080/events/UnitedStates/wins 32 | * URL: http://localhost:8080/events/China/wins 33 | * 34 | */ 35 | @GET 36 | @Path("replace this") 37 | public int getWins(String country) { 38 | return 0; 39 | } 40 | } 41 | 42 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/model/Country.java: -------------------------------------------------------------------------------- 1 | package model; 2 | 3 | /** 4 | * Copyright 2018 Goldman Sachs. 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, 12 | * software distributed under the License is distributed on an 13 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | * KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations 16 | * under the License. 17 | */ 18 | public enum Country { 19 | 20 | UnitedStates, 21 | England, 22 | India, 23 | Brazil, 24 | Australia, 25 | Japan, 26 | China, 27 | Portugal 28 | } 29 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/model/EventType.java: -------------------------------------------------------------------------------- 1 | package model; 2 | 3 | /** 4 | * Copyright 2018 Goldman Sachs. 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, 12 | * software distributed under the License is distributed on an 13 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | * KIND, either express or implied. See the License for the 15 | * specific language governing permissions and limitations 16 | * under the License. 17 | */ 18 | public enum EventType { 19 | WaterPolo, 20 | Baseball, 21 | Curling 22 | } -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/solutions/Example10SolutionResource.java: -------------------------------------------------------------------------------- 1 | package solutions; 2 | 3 | import model.Team; 4 | import utility.FileHelper; 5 | 6 | import javax.ws.rs.*; 7 | import javax.ws.rs.core.MediaType; 8 | import javax.ws.rs.core.Response; 9 | import java.io.IOException; 10 | 11 | /** 12 | * Copyright 2018 Goldman Sachs. 13 | * Licensed under the Apache License, Version 2.0 (the "License"); 14 | * you may not use this file except in compliance with the License. 15 | * You may obtain a copy of the License at 16 | *

17 | * http://www.apache.org/licenses/LICENSE-2.0 18 | *

19 | * Unless required by applicable law or agreed to in writing, 20 | * software distributed under the License is distributed on an 21 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 22 | * KIND, either express or implied. See the License for the 23 | * specific language governing permissions and limitations 24 | * under the License. 25 | */ 26 | @Path("events") 27 | public class Example10SolutionResource { 28 | 29 | @PUT 30 | @Path("team") 31 | @Consumes(MediaType.APPLICATION_JSON) 32 | @Produces(MediaType.APPLICATION_JSON) 33 | public Response setTeam(Team newTeam) throws IOException { 34 | 35 | FileHelper.writeTeamToFile(newTeam.getName().toLowerCase().concat("-team.json"), newTeam); 36 | 37 | return Response.ok().build(); 38 | } 39 | 40 | @GET 41 | @Path("team/{teamName}") 42 | @Produces(MediaType.APPLICATION_JSON) 43 | public Team getTeam(@PathParam("teamName") String teamName) throws IOException { 44 | 45 | return FileHelper.readTeamFromFile(teamName.toLowerCase().concat("-team.json")); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/solutions/Example2SolutionResource.java: -------------------------------------------------------------------------------- 1 | package solutions; 2 | 3 | import javax.ws.rs.GET; 4 | import javax.ws.rs.Path; 5 | import javax.ws.rs.Produces; 6 | import javax.ws.rs.core.MediaType; 7 | 8 | /** 9 | * Copyright 2018 Goldman Sachs. 10 | * Licensed under the Apache License, Version 2.0 (the "License"); 11 | * you may not use this file except in compliance with the License. 12 | * You may obtain a copy of the License at 13 | * 14 | * http://www.apache.org/licenses/LICENSE-2.0 15 | * 16 | * Unless required by applicable law or agreed to in writing, 17 | * software distributed under the License is distributed on an 18 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 19 | * KIND, either express or implied. See the License for the 20 | * specific language governing permissions and limitations 21 | * under the License. 22 | */ 23 | @Path("events") 24 | public class Example2SolutionResource { 25 | 26 | /** 27 | * Example 2 Instructions: 28 | * Modify the method below to return the String "Welcome to Engineering Essentials Services Training!" 29 | */ 30 | @GET 31 | @Path("test") 32 | @Produces(MediaType.APPLICATION_JSON) 33 | public String helloWorld() { 34 | return "Welcome to Engineering Essentials Services Training!"; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/solutions/Example3SolutionResource.java: -------------------------------------------------------------------------------- 1 | package solutions; 2 | 3 | 4 | import javax.ws.rs.GET; 5 | import javax.ws.rs.Path; 6 | import javax.ws.rs.Produces; 7 | import javax.ws.rs.core.MediaType; 8 | import javax.ws.rs.core.Response; 9 | import java.io.IOException; 10 | 11 | /** 12 | * Copyright 2018 Goldman Sachs. 13 | * Licensed under the Apache License, Version 2.0 (the "License"); 14 | * you may not use this file except in compliance with the License. 15 | * You may obtain a copy of the License at 16 | * 17 | * http://www.apache.org/licenses/LICENSE-2.0 18 | * 19 | * Unless required by applicable law or agreed to in writing, 20 | * software distributed under the License is distributed on an 21 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 22 | * KIND, either express or implied. See the License for the 23 | * specific language governing permissions and limitations 24 | * under the License. 25 | */ 26 | @Path("response") 27 | public class Example3SolutionResource { 28 | 29 | /** 30 | * Example 3 Instructions: 31 | * 32 | * 33 | */ 34 | @GET 35 | @Path("test/fixed") 36 | @Produces(MediaType.APPLICATION_JSON) 37 | public Response getResponse() throws IOException { 38 | //TODO: Modify the Path "response" and uri of the getResponse() method to be "/response/test/fixed" 39 | //TODO: Fix the response so that it returns a 200 OK instead of an internal server error. 40 | // TODO:Return the Response with the String entity 41 | String entity = "This site is now fixed."; 42 | return Response.status(Response.Status.OK).entity(entity).build(); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/solutions/Example4SolutionResource.java: -------------------------------------------------------------------------------- 1 | package solutions; 2 | 3 | import model.Event; 4 | import utility.FileHelper; 5 | 6 | import javax.ws.rs.GET; 7 | import javax.ws.rs.Path; 8 | import javax.ws.rs.Produces; 9 | import javax.ws.rs.core.MediaType; 10 | import javax.ws.rs.core.Response; 11 | import java.io.IOException; 12 | 13 | /** 14 | * Copyright 2018 Goldman Sachs. 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, 22 | * software distributed under the License is distributed on an 23 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 24 | * KIND, either express or implied. See the License for the 25 | * specific language governing permissions and limitations 26 | * under the License. 27 | */ 28 | @Path("events") 29 | public class Example4SolutionResource { 30 | 31 | @GET 32 | @Path("sample") 33 | @Produces(MediaType.APPLICATION_JSON) 34 | public Response getSampleEvent() throws IOException { 35 | 36 | Event event = FileHelper.readSingleEvent("single-event.json"); 37 | return Response.ok().entity(event).build(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/solutions/Example5SolutionResource.java: -------------------------------------------------------------------------------- 1 | package solutions; 2 | 3 | 4 | import com.fasterxml.jackson.databind.ObjectMapper; 5 | import model.Event; 6 | import utility.FileHelper; 7 | 8 | import javax.ws.rs.GET; 9 | import javax.ws.rs.Path; 10 | import javax.ws.rs.Produces; 11 | import javax.ws.rs.core.MediaType; 12 | import javax.ws.rs.core.Response; 13 | import java.io.IOException; 14 | import java.util.List; 15 | 16 | /** 17 | * Copyright 2018 Goldman Sachs. 18 | * Licensed under the Apache License, Version 2.0 (the "License"); 19 | * you may not use this file except in compliance with the License. 20 | * You may obtain a copy of the License at 21 | * 22 | * http://www.apache.org/licenses/LICENSE-2.0 23 | * 24 | * Unless required by applicable law or agreed to in writing, 25 | * software distributed under the License is distributed on an 26 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 27 | * KIND, either express or implied. See the License for the 28 | * specific language governing permissions and limitations 29 | * under the License. 30 | */ 31 | @Path("events") 32 | public class Example5SolutionResource { 33 | private ObjectMapper mapper = new ObjectMapper(); 34 | 35 | @GET 36 | @Path("all") 37 | @Produces(MediaType.APPLICATION_JSON) 38 | public Response getAllEvents() throws IOException { 39 | //TODO: Return the list of all of the events in the events.json file 40 | List events = FileHelper.readAllEvents("events.json"); 41 | return Response.ok(events).build(); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/solutions/Example8SolutionResource.java: -------------------------------------------------------------------------------- 1 | package solutions; 2 | 3 | import model.Event; 4 | import utility.FileHelper; 5 | 6 | import javax.ws.rs.GET; 7 | import javax.ws.rs.Path; 8 | import javax.ws.rs.PathParam; 9 | import java.io.IOException; 10 | import java.util.List; 11 | 12 | /** 13 | * Copyright 2018 Goldman Sachs. 14 | * Licensed under the Apache License, Version 2.0 (the "License"); 15 | * you may not use this file except in compliance with the License. 16 | * You may obtain a copy of the License at 17 | * 18 | * http://www.apache.org/licenses/LICENSE-2.0 19 | * 20 | * Unless required by applicable law or agreed to in writing, 21 | * software distributed under the License is distributed on an 22 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 23 | * KIND, either express or implied. See the License for the 24 | * specific language governing permissions and limitations 25 | * under the License. 26 | */ 27 | @Path("events") 28 | public class Example8SolutionResource { 29 | 30 | @GET 31 | @Path("{country}/wins") 32 | public int getWins(@PathParam("country") String country) throws IOException { 33 | 34 | List events = FileHelper.readAllEvents("events.json"); 35 | 36 | int numWins = 0; 37 | for (Event event: events) { 38 | if (event.getWinningCountry().name().equalsIgnoreCase(country)) { 39 | ++numWins; 40 | } 41 | 42 | } 43 | return numWins; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/java/utility/LocalDateSerializer.java: -------------------------------------------------------------------------------- 1 | package utility; 2 | 3 | import com.fasterxml.jackson.core.JsonGenerator; 4 | import com.fasterxml.jackson.databind.JsonSerializer; 5 | import com.fasterxml.jackson.databind.SerializerProvider; 6 | import com.fasterxml.jackson.databind.ser.std.StdSerializer; 7 | import org.apache.commons.lang3.StringUtils; 8 | import org.joda.time.LocalDate; 9 | 10 | import java.io.IOException; 11 | 12 | /** 13 | * Copyright 2018 Goldman Sachs. 14 | * Licensed under the Apache License, Version 2.0 (the "License"); 15 | * you may not use this file except in compliance with the License. 16 | * You may obtain a copy of the License at 17 | *

18 | * http://www.apache.org/licenses/LICENSE-2.0 19 | *

20 | * Unless required by applicable law or agreed to in writing, 21 | * software distributed under the License is distributed on an 22 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 23 | * KIND, either express or implied. See the License for the 24 | * specific language governing permissions and limitations 25 | * under the License. 26 | */ 27 | 28 | public class LocalDateSerializer extends JsonSerializer { 29 | 30 | 31 | @Override 32 | public void serialize(LocalDate localDate, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { 33 | 34 | // jsonGenerator.writeStartObject(); 35 | 36 | jsonGenerator.writeString(String.join("-", String.valueOf(localDate.getYear()), String.valueOf(localDate.getMonthOfYear()), 37 | String.valueOf(localDate.getDayOfMonth()))); 38 | // jsonGenerator.writeEndObject(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /techCurriculum/services/EngineeringEssentialsServices/src/main/resources/backup/single-event.json: -------------------------------------------------------------------------------- 1 | { 2 | "eventType":"WaterPolo", 3 | "homeCountry": "Portugal", 4 | "awayCountry": "Australia", 5 | "date": "2018-02-27", 6 | "winningCountry": "Portugal", 7 | "losingCountry": "Australia", 8 | "winningScore": 22, 9 | "losingScore": 4 10 | } -------------------------------------------------------------------------------- /techCurriculum/ui/extension-work.txt: -------------------------------------------------------------------------------- 1 | Copyright 2019 Goldman Sachs. 2 | Licensed under the Apache License, Version 2.0 (the "License"); 3 | you may not use this file except in compliance with the License. 4 | You may obtain a copy of the License at 5 | http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, 7 | software distributed under the License is distributed on an 8 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 9 | KIND, either express or implied. See the License for the 10 | specific language governing permissions and limitations 11 | under the License. 12 | 13 | Extra features you can add to the Cards project... 14 | * "Favorite" Cards: Add a star icon on all cards that allows you to click the star to "favorite" the card 15 | * "Reply-to" Cards: Add a reply icon on all cards that, when clicked, opens a different form for responding 16 | * More libraries: Think up some features for the app and use open source third party libraries from GitHub to implement them 17 | 18 | 19 | Further topics to research... 20 | * Fetch, Axios, jQuery -- figure out how to use at least one of these to make AJAX HTTP requests! You'll need to do this for your case study. 21 | * React router -- can use this to add several pages to your application 22 | * React lifecycle -- learn more about React's under the hood "magic" and places where you can inject additional logic 23 | * Redux -- popular central datastore architecture, more useful for larger projects 24 | * Boilerplate -- alternatives to create-react-app that you'll probably consider if you ever make your own React app 25 | -------------------------------------------------------------------------------- /techCurriculum/ui/setup.txt: -------------------------------------------------------------------------------- 1 | Copyright 2019 Goldman Sachs. 2 | Licensed under the Apache License, Version 2.0 (the "License"); 3 | you may not use this file except in compliance with the License. 4 | You may obtain a copy of the License at 5 | http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, 7 | software distributed under the License is distributed on an 8 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 9 | KIND, either express or implied. See the License for the 10 | specific language governing permissions and limitations 11 | under the License. 12 | 13 | 14 | # Prerequisites 15 | 16 | - IDE e.g. Sublime Text, Visual Studio Code 17 | - Node (v10.x and up should all be fine) 18 | - npm (v6.x) 19 | - git (v2.x) 20 | - clone the goldmansachs/EngineeringEssentials GitHub repository 21 | 22 | # Environment Setup 23 | 24 | - We will assume you have the repository in the root of a drive, e.g. H:\ 25 | - File structure will look like: H:\EngineeringEssentials\techCurriculum\ui\starter_code\cards-app\... 26 | - Run the following command to get set up with the boiler plate code 27 | 28 | > H:\EngineeringEssentials\techCurriculum\ui\starter_code\cards-app>npm install 29 | * Installs the initial dependencies for this project (mainly vanilla React libraries) 30 | 31 | # Test your setup 32 | 33 | > H:\EngineeringEssentials\techCurriculum\ui\starter_code\cards-app>npm start 34 | 35 | You should see a barebones page that says "Hello World" -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/1.1/1.1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/solutions/1.1/1.1.PNG -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/1.1/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const App = () => { 20 | return ( 21 |

22 |

Hello World 2

23 |
24 | ); 25 | } 26 | 27 | export default App; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/1.1/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import './stylesheet.css'; 20 | 21 | const title = ( 22 |
23 |

Cards

24 |

Share your ideas

25 |
26 | ); 27 | 28 | ReactDOM.render( 29 | title, 30 | document.getElementById('root') 31 | ); 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.1/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const App = () => { 20 | return ( 21 |
22 |

Hello World 2

23 |
24 | ); 25 | } 26 | 27 | export default App; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.1/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | Title = () => { 20 | return ( 21 |
22 |

Cards

23 |

Share your ideas

24 |
25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.1/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import './stylesheet.css'; 20 | 21 | const title = ( 22 |
23 |

Cards

24 |

Share your ideas

25 |
26 | ); 27 | 28 | ReactDOM.render( 29 | title, 30 | document.getElementById('root') 31 | ); 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.2/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | 20 | const App = () => { 21 | return ( 22 |
23 | 24 | </div> 25 | ); 26 | } 27 | 28 | export default App; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.2/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.2/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import './stylesheet.css'; 20 | 21 | const title = ( 22 | <div> 23 | <h1>Cards</h1> 24 | <h3>Share your ideas</h3> 25 | </div> 26 | ); 27 | 28 | ReactDOM.render( 29 | title, 30 | document.getElementById('root') 31 | ); 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.3/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | 20 | const App = () => { 21 | return ( 22 | <div> 23 | <Title /> 24 | </div> 25 | ); 26 | } 27 | 28 | export default App; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.3/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.3/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.4/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | 20 | const App = () => { 21 | return ( 22 | <div> 23 | <Title /> 24 | </div> 25 | ); 26 | } 27 | 28 | export default App; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.4/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.4/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = () => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>John Smith</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.4/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.5/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | 20 | const App = () => { 21 | return ( 22 | <div> 23 | <Title /> 24 | </div> 25 | ); 26 | } 27 | 28 | export default App; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.5/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = () => { 20 | return ( 21 | <div className='message-text'> 22 | <p>React is so cool!</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.5/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.5/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = () => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>John Smith</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.5/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.6/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | 20 | const App = () => { 21 | return ( 22 | <div> 23 | <Title /> 24 | </div> 25 | ); 26 | } 27 | 28 | export default App; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.6/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = () => { 22 | return ( 23 | <div className='card'> 24 | <User /> 25 | <div className='card-main'> 26 | <Message /> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.6/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = () => { 20 | return ( 21 | <div className='message-text'> 22 | <p>React is so cool!</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.6/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.6/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = () => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>John Smith</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.6/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.7/2.7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/solutions/2.7/2.7.PNG -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.7/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from './node_modules/react'; 18 | import Title from './components/Title'; 19 | import Card from './components/Card'; 20 | 21 | const App = () => { 22 | return ( 23 | <div> 24 | <Title /> 25 | <Card /> 26 | </div> 27 | ); 28 | } 29 | 30 | export default App; 31 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.7/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from './node_modules/react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = () => { 22 | return ( 23 | <div className='card'> 24 | <User /> 25 | <div className='card-main'> 26 | <Message /> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.7/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from './node_modules/react'; 18 | 19 | const Message = () => { 20 | return ( 21 | <div className='message-text'> 22 | <p>React is so cool!</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.7/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from './node_modules/react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.7/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from './node_modules/react'; 18 | 19 | const User = () => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>John Smith</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/2.7/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.1/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | import Card from './components/Card'; 20 | 21 | const App = () => { 22 | return ( 23 | <div> 24 | <Title /> 25 | <Card /> 26 | </div> 27 | ); 28 | } 29 | 30 | export default App; 31 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.1/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = () => { 22 | return ( 23 | <div className='card'> 24 | <User name='John Smith'/> 25 | <div className='card-main'> 26 | <Message /> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.1/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = () => { 20 | return ( 21 | <div className='message-text'> 22 | <p>React is so cool!</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.1/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.1/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.1/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.2/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | import Card from './components/Card'; 20 | 21 | const App = () => { 22 | return ( 23 | <div> 24 | <Title /> 25 | <Card /> 26 | </div> 27 | ); 28 | } 29 | 30 | export default App; 31 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.2/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = () => { 22 | return ( 23 | <div className='card'> 24 | <User name='John Smith'/> 25 | <div className='card-main'> 26 | <Message text='React is so cool!'/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.2/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.2/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.2/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.2/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.3/3.3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/solutions/3.3/3.3.PNG -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.3/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | import Card from './components/Card'; 20 | 21 | const App = () => { 22 | return ( 23 | <div> 24 | <Title /> 25 | <Card author='John Smith' text='React is so cool!'/> 26 | <Card author='Jane Doe' text='I use React for all my projects!'/> 27 | </div> 28 | ); 29 | } 30 | 31 | export default App; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.3/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.3/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.3/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.3/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/3.3/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.1/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | import Card from './components/Card'; 20 | 21 | class App extends React.Component { 22 | constructor(props) { 23 | super(props); 24 | this.state = { 25 | cards: [ 26 | { 27 | author: 'John Smith', 28 | text: 'React is so cool!' 29 | }, 30 | { 31 | author: 'Jane Doe', 32 | text: 'I use React for all my projects!' 33 | } 34 | ] 35 | }; 36 | } 37 | 38 | render() { 39 | const cards = this.state.cards.map((card, index) => ( 40 | <Card author={card.author} 41 | text={card.text} 42 | key={index} /> 43 | )); 44 | 45 | return ( 46 | <div> 47 | <Title /> 48 | { cards } 49 | </div> 50 | ); 51 | } 52 | } 53 | 54 | export default App; 55 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.1/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.1/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.1/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.1/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.1/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.2/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | import Card from './components/Card'; 20 | 21 | class App extends React.Component { 22 | constructor(props) { 23 | super(props); 24 | this.state = { 25 | cards: [ 26 | { 27 | author: 'John Smith', 28 | text: 'React is so cool!' 29 | }, 30 | { 31 | author: 'Jane Doe', 32 | text: 'I use React for all my projects!' 33 | } 34 | ] 35 | }; 36 | } 37 | 38 | render() { 39 | const cards = this.state.cards.map((card, index) => ( 40 | <Card author={card.author} 41 | text={card.text} 42 | key={index} /> 43 | )); 44 | 45 | return ( 46 | <div> 47 | <Title /> 48 | { cards } 49 | </div> 50 | ); 51 | } 52 | } 53 | 54 | export default App; 55 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.2/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.2/src/components/CardForm.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import TextInput from './TextInput.js' 19 | 20 | class CardForm extends React.Component { 21 | render() { 22 | return ( 23 | <form className='card-form'> 24 | <h2>Add a Card</h2> 25 | <TextInput name='username' label='Username'/> 26 | <TextInput name='message' label='Message'/> 27 | </form> 28 | ); 29 | } 30 | } 31 | 32 | export default CardForm; 33 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.2/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = () => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.2/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.2/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.2/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.3/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | import Card from './components/Card'; 20 | 21 | class App extends React.Component { 22 | constructor(props) { 23 | super(props); 24 | this.state = { 25 | cards: [ 26 | { 27 | author: 'John Smith', 28 | text: 'React is so cool!' 29 | }, 30 | { 31 | author: 'Jane Doe', 32 | text: 'I use React for all my projects!' 33 | } 34 | ] 35 | }; 36 | } 37 | 38 | render() { 39 | const cards = this.state.cards.map((card, index) => ( 40 | <Card author={card.author} 41 | text={card.text} 42 | key={index} /> 43 | )); 44 | 45 | return ( 46 | <div> 47 | <Title /> 48 | { cards } 49 | </div> 50 | ); 51 | } 52 | } 53 | 54 | export default App; 55 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.3/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.3/src/components/CardForm.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import TextInput from './TextInput.js' 19 | 20 | class CardForm extends React.Component { 21 | constructor(props) { 22 | super(props); 23 | } 24 | 25 | handleSubmit = (event) => { 26 | 27 | } 28 | 29 | render() { 30 | return ( 31 | <form className='card-form'> 32 | <h2>Add a Card</h2> 33 | <TextInput name='username' label='Username' /> 34 | <TextInput name='message' label='Message' /> 35 | <button className='btn btn-primary' onClick={this.handleSubmit}>Submit</button> 36 | </form> 37 | ); 38 | } 39 | } 40 | 41 | export default CardForm; 42 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.3/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.3/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.3/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.3/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.4/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import Title from './components/Title'; 19 | import Card from './components/Card'; 20 | 21 | class App extends React.Component { 22 | constructor(props) { 23 | super(props); 24 | this.state = { 25 | cards: [ 26 | { 27 | author: 'John Smith', 28 | text: 'React is so cool!' 29 | }, 30 | { 31 | author: 'Jane Doe', 32 | text: 'I use React for all my projects!' 33 | } 34 | ] 35 | }; 36 | } 37 | 38 | render() { 39 | const cards = this.state.cards.map((card, index) => ( 40 | <Card author={card.author} 41 | text={card.text} 42 | key={index} /> 43 | )); 44 | 45 | return ( 46 | <div> 47 | <Title /> 48 | { cards } 49 | </div> 50 | ); 51 | } 52 | } 53 | 54 | export default App; 55 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.4/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.4/src/components/CardForm.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import TextInput from './TextInput.js' 19 | 20 | class CardForm extends React.Component { 21 | constructor(props) { 22 | super(props); 23 | } 24 | 25 | handleSubmit = (event) => { 26 | 27 | } 28 | 29 | render() { 30 | return ( 31 | <form className='card-form'> 32 | <h2>Add a Card</h2> 33 | <TextInput name='username' label='Username' /> 34 | <TextInput name='message' label='Message' /> 35 | <button className='btn btn-primary' onClick={this.handleSubmit}>Submit</button> 36 | </form> 37 | ); 38 | } 39 | } 40 | 41 | export default CardForm; 42 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.4/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.4/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | constructor(props) { 21 | super(props); 22 | this.state = { value: '' }; 23 | } 24 | 25 | render() { 26 | return ( 27 | <div className='form-group'> 28 | <label className='control-label'>{this.props.label}</label> 29 | <input type='text' className='form-control' name={this.props.name} value={this.state.value} /> 30 | </div> 31 | ) 32 | } 33 | } 34 | 35 | export default TextInput; 36 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.4/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.4/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.4/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.5/4.5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/solutions/4.5/4.5.PNG -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.5/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.5/src/components/CardForm.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import TextInput from './TextInput.js' 19 | 20 | class CardForm extends React.Component { 21 | 22 | handleSubmit = (event) => { 23 | 24 | } 25 | 26 | render() { 27 | return ( 28 | <form className='card-form'> 29 | <h2>Add a Card</h2> 30 | <TextInput name='username' label='Username' /> 31 | <TextInput name='message' label='Message' /> 32 | <button className='btn btn-primary' onClick={this.handleSubmit}>Submit</button> 33 | </form> 34 | ); 35 | } 36 | } 37 | 38 | export default CardForm; 39 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.5/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.5/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | constructor(props) { 21 | super(props); 22 | this.state = { value: '' }; 23 | } 24 | 25 | render() { 26 | return ( 27 | <div className='form-group'> 28 | <label className='control-label'>{this.props.label}</label> 29 | <input type='text' className='form-control' name={this.props.name} value={this.state.value} /> 30 | </div> 31 | ) 32 | } 33 | } 34 | 35 | export default TextInput; 36 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.5/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.5/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.5/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.6/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.6/src/components/CardForm.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import TextInput from './TextInput.js' 19 | 20 | class CardForm extends React.Component { 21 | constructor(props) { 22 | super(props); 23 | } 24 | 25 | handleSubmit = (event) => { 26 | 27 | } 28 | 29 | render() { 30 | return ( 31 | <form className='card-form'> 32 | <h2>Add a Card</h2> 33 | <TextInput name='username' label='Username' /> 34 | <TextInput name='message' label='Message' /> 35 | <button className='btn btn-primary' onClick={this.handleSubmit}>Submit</button> 36 | </form> 37 | ); 38 | } 39 | } 40 | 41 | export default CardForm; 42 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.6/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.6/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | constructor(props) { 21 | super(props); 22 | this.state = { value: '' }; 23 | } 24 | 25 | handleChange = (event) => { 26 | const value = event.target.value; 27 | this.setState({value: value}); 28 | } 29 | 30 | render() { 31 | return ( 32 | <div className='form-group'> 33 | <label className='control-label'>{this.props.label}</label> 34 | <input type='text' className='form-control' name={this.props.name} value={this.state.value} onChange={this.handleChange} /> 35 | </div> 36 | ) 37 | } 38 | } 39 | 40 | export default TextInput; 41 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.6/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.6/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.6/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.7/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.7/src/components/CardForm.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import TextInput from './TextInput.js' 19 | 20 | class CardForm extends React.Component { 21 | constructor(props) { 22 | super(props); 23 | this.state = {username: '', message: ''}; 24 | } 25 | 26 | handleUsernameChange = (value) => { 27 | this.setState({username: value}); 28 | } 29 | 30 | handleMessageChange = (value) => { 31 | this.setState({message: value}); 32 | } 33 | 34 | handleSubmit = (event) => { 35 | 36 | } 37 | 38 | render() { 39 | return ( 40 | <form className='card-form'> 41 | <h2>Add a Card</h2> 42 | <TextInput name='username' label='Username' value={this.state.username} onChange={this.handleUsernameChange}/> 43 | <TextInput name='message' label='Message' value={this.state.message} onChange={this.handleMessageChange}/> 44 | <button className='btn btn-primary' onClick={this.handleSubmit}>Submit</button> 45 | </form> 46 | ); 47 | } 48 | } 49 | 50 | export default CardForm; 51 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.7/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.7/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | constructor(props) { 21 | super(props); 22 | } 23 | 24 | handleChange = (event) => { 25 | const value = event.target.value; 26 | this.props.onChange(value); 27 | } 28 | 29 | render() { 30 | return ( 31 | <div className='form-group'> 32 | <label className='control-label'>{this.props.label}</label> 33 | <input type='text' className='form-control' name={this.props.name} value={this.props.value} onChange={this.handleChange} /> 34 | </div> 35 | ) 36 | } 37 | } 38 | 39 | export default TextInput; 40 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.7/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.7/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.7/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.8/4.8.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/solutions/4.8/4.8.PNG -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.8/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.8/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.8/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | 21 | handleChange = (event) => { 22 | const value = event.target.value; 23 | this.props.onChange(value); 24 | } 25 | 26 | render() { 27 | return ( 28 | <div className='form-group'> 29 | <label className='control-label'>{this.props.label}</label> 30 | <input type='text' className='form-control' name={this.props.name} value={this.props.value} onChange={this.handleChange} /> 31 | </div> 32 | ) 33 | } 34 | } 35 | 36 | export default TextInput; 37 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.8/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.8/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/4.8/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cards-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "create-react-class": "^15.6.3", 7 | "react": "^16.8.6", 8 | "react-dom": "^16.8.6", 9 | "react-select": "^2.4.3" 10 | }, 11 | "devDependencies": { 12 | "react-scripts": "3.0.1" 13 | }, 14 | "scripts": { 15 | "start": "react-scripts start", 16 | "build": "react-scripts build", 17 | "test": "react-scripts test --env=jsdom", 18 | "eject": "react-scripts eject" 19 | }, 20 | "eslintConfig": { 21 | "extends": "react-app" 22 | }, 23 | "browserslist": { 24 | "production": [ 25 | ">0.2%", 26 | "not dead", 27 | "not op_mini all" 28 | ], 29 | "development": [ 30 | "last 1 chrome version", 31 | "last 1 firefox version", 32 | "last 1 safari version" 33 | ] 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.1/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.1/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.1/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | 21 | handleChange = (event) => { 22 | const value = event.target.value; 23 | this.props.onChange(value); 24 | } 25 | 26 | render() { 27 | return ( 28 | <div className='form-group'> 29 | <label className='control-label'>{this.props.label}</label> 30 | <input type='text' className='form-control' name={this.props.name} value={this.props.value} onChange={this.handleChange} /> 31 | </div> 32 | ) 33 | } 34 | } 35 | 36 | export default TextInput; 37 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.1/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.1/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.1/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cards-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "create-react-class": "^15.6.3", 7 | "react": "^16.8.6", 8 | "react-dom": "^16.8.6", 9 | "react-select": "^2.4.3" 10 | }, 11 | "devDependencies": { 12 | "react-scripts": "3.0.1" 13 | }, 14 | "scripts": { 15 | "start": "react-scripts start", 16 | "build": "react-scripts build", 17 | "test": "react-scripts test --env=jsdom", 18 | "eject": "react-scripts eject" 19 | }, 20 | "eslintConfig": { 21 | "extends": "react-app" 22 | }, 23 | "browserslist": { 24 | "production": [ 25 | ">0.2%", 26 | "not dead", 27 | "not op_mini all" 28 | ], 29 | "development": [ 30 | "last 1 chrome version", 31 | "last 1 firefox version", 32 | "last 1 safari version" 33 | ] 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.2/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | return ( 23 | <div className='card'> 24 | <User name={props.author}/> 25 | <div className='card-main'> 26 | <Message text={props.text}/> 27 | </div> 28 | </div> 29 | ); 30 | } 31 | export default Card; 32 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.2/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.2/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | 21 | handleChange = (event) => { 22 | const value = event.target.value; 23 | this.props.onChange(value); 24 | } 25 | 26 | render() { 27 | return ( 28 | <div className='form-group'> 29 | <label className='control-label'>{this.props.label}</label> 30 | <input type='text' className='form-control' name={this.props.name} value={this.props.value} onChange={this.handleChange} /> 31 | </div> 32 | ) 33 | } 34 | } 35 | 36 | export default TextInput; 37 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.2/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.2/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.2/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.3/5.3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/solutions/5.3/5.3.PNG -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cards-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "create-react-class": "^15.6.3", 7 | "react": "^16.8.6", 8 | "react-dom": "^16.8.6", 9 | "react-select": "^2.4.3" 10 | }, 11 | "devDependencies": { 12 | "react-scripts": "3.0.1" 13 | }, 14 | "scripts": { 15 | "start": "react-scripts start", 16 | "build": "react-scripts build", 17 | "test": "react-scripts test --env=jsdom", 18 | "eject": "react-scripts eject" 19 | }, 20 | "eslintConfig": { 21 | "extends": "react-app" 22 | }, 23 | "browserslist": { 24 | "production": [ 25 | ">0.2%", 26 | "not dead", 27 | "not op_mini all" 28 | ], 29 | "development": [ 30 | "last 1 chrome version", 31 | "last 1 firefox version", 32 | "last 1 safari version" 33 | ] 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.3/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | const tagElements = props.tags.map((tag, index) => 23 | <div key={index} className='badge badge-pill' id='tag'> 24 | {tag.value} 25 | </div> 26 | ) 27 | return ( 28 | <div className='card'> 29 | <User name={props.author}/> 30 | <div className='card-main'> 31 | <Message text={props.text}/> 32 | </div> 33 | {tagElements} 34 | </div> 35 | ); 36 | } 37 | 38 | export default Card; 39 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.3/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.3/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | 21 | handleChange = (event) => { 22 | const value = event.target.value; 23 | this.props.onChange(value); 24 | } 25 | 26 | render() { 27 | return ( 28 | <div className='form-group'> 29 | <label className='control-label'>{this.props.label}</label> 30 | <input type='text' className='form-control' name={this.props.name} value={this.props.value} onChange={this.handleChange} /> 31 | </div> 32 | ) 33 | } 34 | } 35 | 36 | export default TextInput; 37 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.3/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.3/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/5.3/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.1/6.1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/solutions/6.1/6.1.PNG -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cards-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "create-react-class": "^15.5.3", 7 | "react": "^16.8.6", 8 | "react-dom": "^16.8.6", 9 | "react-select": "^2.4.3", 10 | "react-datepicker": "^2.5.0" 11 | }, 12 | "devDependencies": { 13 | "react-scripts": "0.9.5" 14 | }, 15 | "scripts": { 16 | "start": "react-scripts start", 17 | "build": "react-scripts build", 18 | "test": "react-scripts test --env=jsdom", 19 | "eject": "react-scripts eject" 20 | }, 21 | "eslintConfig": { 22 | "extends": "react-app" 23 | }, 24 | "browserslist": { 25 | "production": [ 26 | ">0.2%", 27 | "not dead", 28 | "not op_mini all" 29 | ], 30 | "development": [ 31 | "last 1 chrome version", 32 | "last 1 firefox version", 33 | "last 1 safari version" 34 | ] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.1/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | const tagElements = props.tags.map((tag, index) => 23 | <div key={index} className='badge badge-pill' id='tag'> 24 | {tag.value} 25 | </div> 26 | ) 27 | return ( 28 | <div className='card'> 29 | <User name={props.author}/> 30 | <div className='card-main'> 31 | <Message text={props.text}/> 32 | </div> 33 | {tagElements} 34 | </div> 35 | ); 36 | } 37 | 38 | export default Card; 39 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.1/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.1/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | 21 | handleChange = (event) => { 22 | const value = event.target.value; 23 | this.props.onChange(value); 24 | } 25 | 26 | render() { 27 | return ( 28 | <div className='form-group'> 29 | <label className='control-label'>{this.props.label}</label> 30 | <input type='text' className='form-control' name={this.props.name} value={this.props.value} onChange={this.handleChange} /> 31 | </div> 32 | ) 33 | } 34 | } 35 | 36 | export default TextInput; 37 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.1/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.1/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.1/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.2/6.2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/solutions/6.2/6.2.PNG -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cards-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "create-react-class": "^15.5.3", 7 | "react": "^16.8.6", 8 | "react-dom": "^16.8.6", 9 | "react-datepicker": "^2.5.0", 10 | "react-select": "^2.4.3" 11 | }, 12 | "devDependencies": { 13 | "react-scripts": "0.9.5" 14 | }, 15 | "scripts": { 16 | "start": "react-scripts start", 17 | "build": "react-scripts build", 18 | "test": "react-scripts test --env=jsdom", 19 | "eject": "react-scripts eject" 20 | }, 21 | "eslintConfig": { 22 | "extends": "react-app" 23 | }, 24 | "browserslist": { 25 | "production": [ 26 | ">0.2%", 27 | "not dead", 28 | "not op_mini all" 29 | ], 30 | "development": [ 31 | "last 1 chrome version", 32 | "last 1 firefox version", 33 | "last 1 safari version" 34 | ] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.2/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | const tagElements = props.tags.map((tag, index) => 23 | <div key={index} className='badge badge-pill' id='tag'> 24 | {tag.value} 25 | </div> 26 | ) 27 | return ( 28 | <div className='card'> 29 | <User name={props.author}/> 30 | <div className='card-main'> 31 | <Message text={props.text}/> 32 | </div> 33 | {tagElements} 34 | {props.dateStamp ? props.dateStamp.toString() : null} 35 | </div> 36 | ); 37 | } 38 | 39 | export default Card; 40 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.2/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.2/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | 21 | handleChange = (event) => { 22 | const value = event.target.value; 23 | this.props.onChange(value); 24 | } 25 | 26 | render() { 27 | return ( 28 | <div className='form-group'> 29 | <label className='control-label'>{this.props.label}</label> 30 | <input type='text' className='form-control' name={this.props.name} value={this.props.value} onChange={this.handleChange} /> 31 | </div> 32 | ) 33 | } 34 | } 35 | 36 | export default TextInput; 37 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.2/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.2/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/6.2/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/7.1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/solutions/7.1/7.1.PNG -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cards-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "create-react-class": "^15.5.3", 7 | "highcharts": "5.0.11", 8 | "moment": "^2.24.0", 9 | "react": "^16.8.6", 10 | "react-dom": "^16.8.6", 11 | "react-datepicker": "^2.5.0", 12 | "react-select": "^2.4.3" 13 | }, 14 | "devDependencies": { 15 | "react-scripts": "0.9.5" 16 | }, 17 | "scripts": { 18 | "start": "react-scripts start", 19 | "build": "react-scripts build", 20 | "test": "react-scripts test --env=jsdom", 21 | "eject": "react-scripts eject" 22 | }, 23 | "eslintConfig": { 24 | "extends": "react-app" 25 | }, 26 | "browserslist": { 27 | "production": [ 28 | ">0.2%", 29 | "not dead", 30 | "not op_mini all" 31 | ], 32 | "development": [ 33 | "last 1 chrome version", 34 | "last 1 firefox version", 35 | "last 1 safari version" 36 | ] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/src/components/Card.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import User from './User'; 19 | import Message from './Message'; 20 | 21 | const Card = (props) => { 22 | const tagElements = props.tags.map((tag, index) => 23 | <div key={index} className='badge badge-pill' id='tag'> 24 | {tag.value} 25 | </div> 26 | ) 27 | return ( 28 | <div className='card'> 29 | <User name={props.author}/> 30 | <div className='card-main'> 31 | <Message text={props.text}/> 32 | </div> 33 | {tagElements} 34 | {props.dateStamp ? props.dateStamp.toString() : null} 35 | </div> 36 | ); 37 | } 38 | 39 | export default Card; 40 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/src/components/Message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Message = (props) => { 20 | return ( 21 | <div className='message-text'> 22 | <p>{props.text}</p> 23 | </div> 24 | ); 25 | } 26 | 27 | export default Message; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/src/components/TextInput.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | class TextInput extends React.Component { 20 | 21 | handleChange = (event) => { 22 | const value = event.target.value; 23 | this.props.onChange(value); 24 | } 25 | 26 | render() { 27 | return ( 28 | <div className='form-group'> 29 | <label className='control-label'>{this.props.label}</label> 30 | <input type='text' className='form-control' name={this.props.name} value={this.props.value} onChange={this.handleChange} /> 31 | </div> 32 | ) 33 | } 34 | } 35 | 36 | export default TextInput; 37 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/src/components/Title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const Title = () => { 20 | return ( 21 | <div> 22 | <h1>Cards</h1> 23 | <h2>Share your ideas</h2> 24 | </div> 25 | ); 26 | } 27 | 28 | export default Title; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/src/components/User.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const User = (props) => { 20 | return ( 21 | <div className='user'> 22 | <i className='fa fa-user-o'/> 23 | <p>{props.name}</p> 24 | </div> 25 | ); 26 | } 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/src/data/jane_posts.json: -------------------------------------------------------------------------------- 1 | { 2 | "data" : [3.9, 4.2, 5.7, 8.5, 27.9, 19.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] 3 | } -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/src/data/john_posts.json: -------------------------------------------------------------------------------- 1 | { 2 | "data" : [2.0, 4.9, 9.5, 14.5, 3.2, 21.5, 15.2, 8.5, 9.3, 18.3, 13.9, 9.6] 3 | } -------------------------------------------------------------------------------- /techCurriculum/ui/solutions/7.1/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import App from './App'; 20 | import './stylesheet.css'; 21 | 22 | ReactDOM.render( 23 | <App />, 24 | document.getElementById('root') 25 | ); 26 | -------------------------------------------------------------------------------- /techCurriculum/ui/starter_code/cards-app/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env 15 | .vscode/ 16 | npm-debug.log* 17 | yarn-debug.log* 18 | yarn-error.log* 19 | 20 | -------------------------------------------------------------------------------- /techCurriculum/ui/starter_code/cards-app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cards-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "create-react-class": "^15.5.3", 7 | "highcharts": "5.0.11", 8 | "moment": "^2.24.0", 9 | "react": "^16.8.6", 10 | "react-dom": "^16.8.6", 11 | "react-datepicker": "^2.5.0", 12 | "react-select": "^2.4.3" 13 | }, 14 | "devDependencies": { 15 | "react-scripts": "0.9.5" 16 | }, 17 | "scripts": { 18 | "start": "react-scripts start", 19 | "build": "react-scripts build", 20 | "test": "react-scripts test --env=jsdom", 21 | "eject": "react-scripts eject" 22 | }, 23 | "eslintConfig": { 24 | "extends": "react-app" 25 | }, 26 | "browserslist": { 27 | "production": [ 28 | ">0.2%", 29 | "not dead", 30 | "not op_mini all" 31 | ], 32 | "development": [ 33 | "last 1 chrome version", 34 | "last 1 firefox version", 35 | "last 1 safari version" 36 | ] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /techCurriculum/ui/starter_code/cards-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/goldmansachs/EngineeringEssentials/108c6a8eeafd129eea491cd3ee805812a510d191/techCurriculum/ui/starter_code/cards-app/public/favicon.ico -------------------------------------------------------------------------------- /techCurriculum/ui/starter_code/cards-app/src/App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | 19 | const App = () => { 20 | return ( 21 | <div> 22 | <h1>Hello World 2</h1> 23 | </div> 24 | ); 25 | } 26 | 27 | export default App; 28 | -------------------------------------------------------------------------------- /techCurriculum/ui/starter_code/cards-app/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | import React from 'react'; 18 | import ReactDOM from 'react-dom'; 19 | import './stylesheet.css'; 20 | 21 | ReactDOM.render( 22 | <p>Hello World</p>, 23 | document.getElementById('root') 24 | ); -------------------------------------------------------------------------------- /techCurriculum/ui/starter_code/cards-app/src/stylesheet.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 Goldman Sachs. 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, 10 | * software distributed under the License is distributed on an 11 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 12 | * KIND, either express or implied. See the License for the 13 | * specific language governing permissions and limitations 14 | * under the License. 15 | **/ 16 | 17 | body { 18 | margin: 0; 19 | padding: 20px; 20 | font-family: 'Roboto Condensed'; 21 | } 22 | 23 | .user p { 24 | margin-bottom: 0px; 25 | text-align: center; 26 | } 27 | 28 | .user i { 29 | font-size: 5em; 30 | } 31 | 32 | .message-text { 33 | font-size: 24px; 34 | } 35 | 36 | .card { 37 | display: flex; 38 | width: 500px; 39 | background-color: #eee; 40 | padding: 20px; 41 | margin: 15px; 42 | } 43 | 44 | .card-main { 45 | margin-left: 30px; 46 | flex: 1; /* Stretch horizontally to fill containing card */ 47 | display: flex; /* Flexbox with vertical children */ 48 | flex-direction: column; 49 | } 50 | 51 | .card-main > .message-text { 52 | /* Any extra vertical space in a card goes to the message */ 53 | flex: 1; 54 | } 55 | 56 | .card-buttons { 57 | /* Align buttons to the right */ 58 | margin-left: auto; 59 | } 60 | 61 | #app-body { 62 | display: flex; 63 | } 64 | 65 | #left-panel { 66 | margin-right: 40px; 67 | } 68 | 69 | #tag { 70 | max-height: 20px; 71 | } 72 | -------------------------------------------------------------------------------- /techCurriculum/ui/starter_code/data/jane_posts.json: -------------------------------------------------------------------------------- 1 | { 2 | "data" : [3.9, 4.2, 5.7, 8.5, 27.9, 19.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] 3 | } -------------------------------------------------------------------------------- /techCurriculum/ui/starter_code/data/john_posts.json: -------------------------------------------------------------------------------- 1 | { 2 | "data" : [2.0, 4.9, 9.5, 14.5, 3.2, 21.5, 15.2, 8.5, 9.3, 18.3, 13.9, 9.6] 3 | } --------------------------------------------------------------------------------