π» We recommend you attempt the Full Stack challenge, but you can select the steps that best suits your commitment level. You do not have to complete every step of the challenge to earn points.
π― At the end of each month, each submission's points will be tallied by the PacWest team. Participants who show exceptional work in either a Full Stack, Frontend, or Backend capacity will be recognized in SWE's Monthly CoreTech meeting and the Coding Challenge SharePoint
π Points are tallied on a continuous basis. The top five participants will be listed in the Coding Challenge leaderboard.
π« Remember: this is a time to challenge yourself, try out new tech, and have fun!
π§ Once completed, please submit your repository to pacwest@avanade.com. We will then send you a reflection form to fill out.
π² Click here to utilize the National Parks API π²
Create a working frontend webpage with React and Next.js. To complete the first step of the frontend challenge, you must complete the following steps in the Next.js - Create Your First App tutorial:
NOTE: If you plan on completing the full stack challenge, we recommend you complete the each step Next.js Create Your First App tutorial
|
In order to complete the backend challenge, you must have SQL Server Management Studio downloaded.
Establish a simple database system from an assigned system with primary table/object and can populate table with the given parks.json
|
Utilizing the National Park data stored in parks.json, iterate through the national park data to create a National Park landing page. Use Bootstrap as a frontend component library
The landing page must have a navigation bar with a home button. Additionally, the landing page must include each park's key data components:
|
Establish a connection (primary controller) for an initial database connection (we recommend Spring Boot.
Create a series of GET calls from database:
Use screenshots of Postman responses to prove your functionality
Requires:
NOTE: Try to use Spring Boot's built-in methods to complete the mapping. You likely will not need to create custom SQL queries.
|
Transform the existing landing page into a simple list of the National Parks names. Ultimately, when the user clicks on it a park name, it will lead the user to a new park-specific page. You must include all of the static components from Step Two of the frontend challenge (name, description, etc.) in each individual page.
Additionally, you will use the React function useState to create the following interactive components for the user:
HINT: Think about creating reusable components. Is it better to use Next.js pages, props, or both? What identifier can you utilize in the parks.json file to ensure that each component has its own key? You as the developer must decide.
|
Having completed the GET mapping, now it's time to finish your POST, PUT, and DELETE mappings.
Establish full API calls to the database with CRUD behavior (In Spring Boot, they're labeled as @GetMapping, @PostMapping, @PutMapping, and @DeleteMapping)
NOTE: Try to use Spring Boot's built-in methods to complete the mapping. You likely will not need to create custom SQL queries.
|
Now, utilize the activities.json file create components based on the activities each park provides. On the park-specific pages, you will need:
|
Expand your database by implementing relationships between tables and can make proper CRUD calls to to new entities. New table creation is encouraged to be based off of user interactivity. Think about how you would store data for specific users
Create new table/storage for the relational database:
CRUD all new data from database
Keep in mind...
NOTE: For complex database calls, you may have to create custom SQL queries within your repos. However, challenge yourself by using Spring Boot's built-in methods to complete your mappings until its needed
|
Finally, you will ensure that your National Park app functions as expected and is accessible by all users. You must:
|
Establish a DTO (data transfer object) layer and modify our current mappings to return DTO types.
Implement a DTO layer into your application and can make complex/unique CRUD calls to your database.
|
Fundamentals:
Frontend:
Back-End
Avanade is the leading provider of innovative digital, cloud and advisory services, industry solutions and design-led experiences across the Microsoft ecosystem.