bcgov / containerization-and-cloud-economic-model

The Cloud Economic Model makes financial sense of adopting cloud-based infrastructure.
Apache License 2.0
2 stars 0 forks source link

Contributors Forks Stargazers Issues MIT License Lifecycle


Logo

Cloud Economic Model

The Containerization and Cloud Economic Model makes financial sense of adopting cloud-based infrastructure.

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. Code of Conduct
  7. License
  8. Acknowledgements

About The Project

A model for analyzing the business case to move from a legacy waterfall on-premise application hosting model to an agile open-source pipeline moving from a staging ground that is containerized on-premise to eventual commercial cloud hosted.

A Vue Frontend (single page application) asks questions which are used to complete an Excel spreadsheet template. Results are provided by email. Common Services APIs are used for GETOK (internal authentication), CDOGS (document generation) and CHES (email).

This project started as a fork of the Common Services Team's Common Forms Toolkit.

Sample: DEV Mode Sensitivity Analysis Options

Questions

Architecture

CEM Architecture

Built With

Technologies:

Services:

Getting Started

Development Platform

Linux and OS X's bash terminals may be used as-is.

Windows Substem for Linux v2 is strongly recommended for Windows development.

Common Services Access Token (GETOK)

Common Services provides various APIs for used by the Government of British Columbia. Please see their project documentation to receive a client ID and secret.

Run in Docker Compose

This is the recommended development method. When running Vue and nodemon will live reload the application as code is modified.

  1. Install Docker and Docker Compose

  2. Clone, open and view the repo's contents, including hidden files

    git clone https://github.com/<ORGANIZATION>/<REPOSITORY>.git
    cd <REPOSITORY>
    ls -la
  3. Export client ID and secret for consumption by the backend

    export CLIENT_ID="<REDACTED>"
    export CLIENT_SECRET="<REDACTED>"
  4. Fire up Docker Compose

    docker-compose up
  5. Open the application. Frontend is the intended entry point.

Alternative Installation - Local

Although a much less consistent and predictable development experience the application can be run on bare-metal with Node.js. Vue and nodemon live reloading remains present. In place of the docker-compose up step:

  1. Install Node.js 10+

  2. Start the Backend API in development mode

    cd backend
    npm install
    npm run dev
  3. Start the Frontend Vue App (requires a new terminal session)

    cd frontend
    npm install
    npm run serve

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire and create. Any contributions you make are greatly appreciated. Please see CONTRIBUTING.md for more information.

  1. Fork the Project. Do this online using a GitHub account

  2. Create and Push your Feature Branch

    git checkout -b feature/featureTitle
    git push -u origin feature/featureTitle
  3. Add and Commit your Changes

    git add file_or_path
    git commit -m "Description of feature or change"
  4. Push to the Branch Regularly

    git push
  5. Open a Pull Request online

Code of Conduct

Be inclusive and respectful. More information is available in CONDUCT.md.

License

Distributed under the MIT License. See LICENSE.txt for more information.

Acknowledgements