The link to the app is here: https://geom.shinyapps.io/careerpathfinder-beta/
GitHub Repo: https://github.com/georgemirandajr/career-pathfinder
RStudio Cloud: rstudio.cloud/project/251957
This app is a career planning tool that can be used by any current or prospective employee of Los Angeles County. There are over 2,000 unique job titles and hundreds of thousands of career movements that have occurred in the last several decades. The Career PathFinder presents information about the many potential careers available with the county. With this app, anyone can discover where any given job might take them. As a career discovery tool, interested applicants may explore a job they are considering and see the decisions of people who have held that position, as well as other pertinent information such as salary, the number of people currently holding the title, and the job requirements. Users of the tool may add and/or remove jobs to their desired career path and eventually save their career path by printing out a report.
This app was developed in order to demonstrate the capabilities of the Department of Human Resources and solicit feedback from focus groups so that a final version could be developed. Ultimately, this prototype led to a robust requirements document that was used to procure a vendor who developed the final version. The final version, which is not done in R/Shiny, features a "reverse" path where a user can start by asking "how did someone get to that position" and discover the jobs that most frequently feed into that position.
There were many iterations of this app. In fact, the reason I used R and Shiny was because of its ability to build something usable very quickly and get feedback from my team members. I first used Flexdashboard to build several layouts and UX designs. Flexdashboard offered the quickest way of getting feedback from the team because the layouts are already pre-made. I just made about 5 versions and printed out screenshots to share with the team. Then I had them use the tool to help them get a feel for the UX. After obtaining feedback from my team, I moved away from Flexdashboard and built a prototype just with Shiny because I found it difficult and constraining to make major modifications to the Flexdashboard styles. As a team, we continued enhancing the look and feel of this prototype, eventually sharing it with internal stakeholders (focus groups and executives) and obtained feedback. This proved useful because we were able to document the needs of our potential end users and ensure we included those needs in our requirements documentation.
In the process of obtaining feedback and continually enhancing the app, I found the need to use several packages to achieve the results we were looking for. For the visualization of the career path, I used visNetwork because it was very customizable. The table below the career path is from the DT package, which allowed me to customize the look of the table, but also enabled very handy responsive features on smaller screens. At some point we realized that users will need something to help them understand the website, so I used rintrojs to create a walk-through of the major features. Another prominently used package was png, which was crucial for making the report print-outs. We have a graphic designer on our team who designed a beautiful output report and I was able to convert her files to png and use the app to import them and use as background images when printing information about the jobs.
There are several things I would like to go back and "fix", or at least make more maintainable/efficient. I would like to utilize shiny modules to reduce the amount of code in the app. I only started learning it about a year ago and this app was already under development in 2017 and it never seemed like a good idea to make the transition while actively developing it. Overall, this prototype was very helpful as a means of obtaining feedback and demonstrating the usefulness of career data in LA County.