Copyright (c) 2019 California Community Colleges Technology Center
Licensed under the MIT license.
A copy of this license may be found at https://opensource.org/licenses/mit-license.php
Developer Tools Portal
This module is developer centric and allows:
Centralized CCCTC documentation pulled and generated at build time.
Quick prototyping and integration testing with other apps/services in stack.
Infrastructure for build/deploy/routing is already done. This deploys to CI and QA Environments:
Demo or debug code deployed to AWS shared services Rancher stack.
NOTE: This module is intended as a toolbox for developers, QA, dev ops and internal staff.
Technologies Used:
Integrations
- Conductor integration for workflow execution and configuration
- Keycloak OAuth with Google as IDP (auth to ccctechcenter.org)
- Document generation from Bitbucket, Confluence, Docs
Documentation:
- Ascii Doc
Devportal web app
- Node Server: ExpressJS, react-router
- Browser Client: ReactJS with responsive material-ui
Examples
- Spring MVC: Spring Boot Webapp
Configuration
Spring Cloud Config
Following existing examples, the configuration is contained in a separate configuration repo.
- Cloud-config loads configs from above on application startup.
- A GIT webhook triggered by a git PUSH, tells cloud-config to update itself from config repo without needing a restart.
See local configs that override git settings in application-local.yml
Building
For local dev, you may not need to run the build.js script to build each component and create the Docker iamge.
Running
NOTE: Each technology above can be run locally as individual processes or packaged together in Docker with the build.js script.
Locally you can run :
- The React UI with the script nodejs/create-react-app/run.sh
- The Express Server with the script nodejs/express-server/run.sh
- See below for the running the spring boot app in the IDE. (NOTE: This is legacy code)
Running in IntelliJ
The Spring MVC app can be run in IntelliJ Run Configuration to be configured as:
Main class: org.ccctech.devportal.DevPortalWebApp
VM options: -Dspring.profiles.active=dev,local
Working Directory: $MODULE_DIR$
Environment Variables:
Running in Docker
Docker Configuration
Docker network
To allow multiple services to communicate with each other, they must all join the same docker network. Ensure the 'ccctc' network is created locally by running the below:
docker network create ccctc
Running Docker
From the module root directory, start the container with:
docker-compose up
Stopping Docker
With the above docker-compose command, you can CTRL-C to stop the processes. To ensure proper cleanup, follow that with:
docker-compose down