Skip to content

M3 Submission

Latest
Compare
Choose a tag to compare
@s3539747 s3539747 released this 18 Oct 12:55
66ffad3
M3 Submission (#122)

* Backend Boilerplate (#1)

* Added an editor configuration file for IDE's to recognise the basic formatting when developing within the frontend solution.

* Added a prettier ignore file for both the linting process and IDE's to recognise which files matching the defined patterns should not be reformatted.

* Added the prettier configuration file utilised by the linter to determine the appropriate custom linting rules for javascript code.

* Implemented additional typescript configuration around code paractices enforced by the linter.

* Implemented a feature complete linting configuration applied during the linting process which automatically reformats code to follow both community and industry standards + conventions.

* Added additional packages required for linting alongside the script(s) necessary for invoking the linter.

* Upadated packages alongside their bianry hashes.

* Applied the formatting changes made by the linter.

* basic front end + styling configuration

* switch view based on button press

* unit tests

* unit tests

* calendar and example employee profile

* react-day-picker calendar

* unit tests

* Implemented as basic (not necessarily needed) application (component) for rendering components and views within the frontend.

* Amended the main index file to utilise the application component in the root directory.

* Implemented Jest alongside the necessary scripts for running it proactively.

* Automatic package updates.

* Updated the typescript configuration to include type roots for appropriate package visibility required to do component rollup.

* Reformatted the user interface to apply the specified project configuration.

* Reformatted the view status interface to apply the specified project configuration.

* Migrated the booking component to the appropriate component directory using modern react concepts including typescript functional components, hooks and effects for state management whilst simplifying the implementation.

* Migrated the dashboard component to the appropriate component directory using modern react concepts including typescript functional components, hooks and effects for state management whilst simplifying the implementation.

* Migrated the booking tests to their respective component directory for better organisation and ownership whilst applying project configuration formatting.

* Migrated the dashboard tests to their respective component directory for better organisation and ownership whilst applying project configuration formatting.

* Migrated the booking style to their respective component directory for better organisation whilst modifying the naming for conventions and applying project configuration formatting.

* Added a booking component rollup file to use when accessing components and interfaces.

* Added a dashboard component rollup file to use when accessing components and interfaces.

* Added a component rollup file for accessing individual components globally without hardcoding their references all over the place to assist when the project grows and components move around.

* Temporarily reduced the output type when function return types aren't explicitly declared from error to warning.

* Applied linting to the project files.

* Initial Database (#7)

* Created the initial database instance (SEPT-32)

* Adjusted database, as discussed

* Added auto increment to the ID's

* Frontend Routing (#9)

* Added the reach router packages for configuring routing.

* Migrated the application as a component into the appropriate directory.

* Introduced component rollup for the application.

* Added rollup to the application component functions and interfaces.

* Updated the reference to the application component.

* Implemented an initial home page for utilisation by routing.

* Added the component rollup for the home page.

* Implemented an initial dashboard page for utilisation by routing.

* Added the component rollup for the dashboard page.

* Implemented an overall page rollup so references aren't explicitly assigned to individual pages.

* Implemented a route component for use by the reach router component for delegating paths to pages.

* Added a component rollup for the route.

* Implemented the route component rollup inside the generic components rollup.

* Added a router inside of the application for navigation through to pages.

* Simplified the dashboard component booking rows rendering through a ternary condition.

* Added type definitions for reach router.

* Simplified the route component with inference from reach routing types.

* Applied linting to the solution after introducing routing amendments.

* Infrastructure Environment Configuration (#10)

* Implemented an environment file for the development environment which contains the necessary input arguments for configuring the infrastructure remote state resources with proper naming conventions.

* Implemented the root configuration file for enabling Terragrunt interoperability over remote envirinment configuration management with component configuration injection.

* Designed the functional component directory structure for managing each applications infrastructure as code definitions independently.

* Designed the environment configuration component directory structure for managing each applications dynamic configuration definitions independently.

* Constructed infrastructure documentation to instruct team members and/or project reviewers of the dynamics around Terraform/Terragrunt infrastructure as code methodology for setup, development as well as execution.

* booking info code  and revamp to modern js

* remove accidental push

* Frontend Booking Information (#14)

* Frontend UI Component Libary (#15)

* Added the ant design package to leverage their rich UI components and layouts.

* Reformatted the booking information component.

* Added the default application style for ant design.

* Added the missing booking interface based on the built component.

* Fixed the booking information component from erroring on build/compilation due to missing references.

* Removed the configuration for erroring when local variables aren't referenced.

* Upgraded the react testing library package.

* Automatic lock changes form updating package(s).

* Updated all of the necessary UI components for the dashboard page.

* Updated all of the necessary UI components for the home page.

* Frontend Layouts (#16)

* Added a typescript JSX styling package for applying appropriate formats to layouts and designs at a later stage.

* Implemented the initial styling prototype without a typescript styling framework.

* Upgraded the full width styling to use typscript.

* Implemented a layout for a full width sized pages.

* Added the rollup for the full width layout.

* Removed a full width enhancement with components that do not exist in this PR but will be added later.

* Added the root rollup for all layouts which currently only includes the full width layout.

* Implemented a padded layout style using typescript.

* Implemented a padded layout for utilisation by pages which require side padding with a breadcrumb.

* Added the padded layout rollup.

* Added the padded layout to the root rollup.

* Implemented the styling for the sidebar layout.

* Implemented the sidebar layout utilised by pages on such as those on the dashboard which require a secondary menu.

* Added the rollup for the sidebar layout.

* Added the sidebar layout to the root rollup.

* Applied the padded layout to the home page.

* Applied the sidebar layout to the dashboard page.

* Frontend Heading & Footing (#17)

* Implemented a component representing a routable menu item for utilisation in a heading.

* Added the menu item rollup.

* Added the menu item to the root component rollup.

* Implemented a header component style using typescript styling.

* Implemented the header component to be utilised by various different layouts.

* Added the header component rollup.

* Added the header component to the root rollup for components.

* Implemented styling for the footer component using typescript.

* Implmented the footer component to be utilised by various layouts.

* Added the footer component rollup.

* Added the footer component to the root rollup for components.

* Added a newline separator between component types.

* Included the heading and footing components inside of the full width page layout.

* Included the heading and footing components inside of the padded page layout.

* Included the heading and footing components inside of the sidebar page layout.

* Implemented testing against the application for testing appropriate internal routing to various different pages implemented.

* Feature/sept 22 booking form (#19)

* front end code and revamp to modern js

* basic form and formik installation

* formik conversion

* basic antd formatting

* unit test and code comments

* moved files from component -> pages

* Frontend 404 Not Found Page (#21)

* Implemented an extemely basic initial 404 page to get the routing going.

* Added the not found page rollup.

* Added the not found page to the main page rollup.

* Added a newline separation between special pages such as 404 not found.

* Implemented the 404 not found route as the default when the request page could not be found.

* Added a test to ensure the 404 not found page is working.

* Redesigned the 404 not found page.

* Infrastructure Binary Restrictions (#22)

* Added the terraform version constraint for limiting which specific version of terraform can be used to deploy the infrastructure.

* Added the terragrunt version constraint for limiting which version(s) of terragrunt can be used to deploy the infrastructure.

* Database Fixes (Data types) (#20)

* Created the initial database instance (SEPT-32)

* Adjusted database, as discussed

* Added auto increment to the ID's

* Updated data dype for Price, Postcode, and Mobile number

* Adjusted password & username length to make it consistent with other tables

* Infrastructure Binaries (#24)

* Specified the binary path as a local terragrunt variable.

* Specified the path associated with the Terraform binary which will be used for all infrastructure operations.

* Initialised git LFS and created the gitattributes file.

* Added the Terraform binary for version 0.13.3 associated with the darwin operating system distribution.

* Added the Terragrunt binary for version 0.24.4 associated with the darwin operating system distribution.

* Added the Terraform binary for version 0.13.3 associated with the linux operating system distribution.

* Added the Terragrunt binary for version 0.24.4 associated with the linux operating system distribution.

* Added the Terraform binary for version 0.13.3 associated with the windows operating system distribution.

* Added the Terragrunt binary for version 0.24.4 associated with the windows operating system distribution.

* Removed Breaking Booking Code(#26)

* Frontend Pipeline (#27)

* Implemented the build pipeline for the frontend.

* Implements a build template for javascript applications.

* Migrated the pipelines into the infrastructure directory.

* Added a checkout step for LFS binaries.

* Added a working directory for the build script using a new parameter for the source directory.

* Added the directory parameter for building the website and simplified reusability through a common variable.

* Specified the agent pool to use for the build.

* Added a task for installing the solution packages.

* Integrated a testing section to the javascript build process.

* Removed the multiline aspect from all the frontend scripts.

* Modified the default parameter value for pipeline failure to occur when the build fails to be truthful.

* Specified falsy for when the pipeline fails alongside the tests for the timebeing until they're improved.

* Frontend Pipeline Testing (#28)

* Modified the frontend ci test script to publish coverage results for pipeline consumption.

* Added the frontend coverage report file to the ignored file list.

* Modified the test script to utilise the pipeline one.

* Added a task for publishing junit test results.

* Corrected the develop branch name.

* Updated the pipeline triggers.

* Removed unused exclude.

* Frontend Booking Form Bug (#30)

* Frontend Production Builds (#29)

* Removed the coverage report generated by the frontend build.

* Removed unnecessary packages bloating the bundle(s) and added a ci optimised (production) build script.

* Refactored the webpack configuration to detect environments and bundle differently depending on the vendors or main implementations as well as removed some unnecessary modules/plugins.

* Modified the javascript build template to use the production build.

* Updated the frontend directory case sensitivity.

* Restored formilk as it's still in use.

* Frontend Pipeline Code Coverage (#31)

* Added pipeline compatibility with code coverage reports on frontend tests.

* Simplified publish task names.

* Infrastructure Frontend Website (#32)

* Removed the temporary README files which were upholding the directory structure.

* Upgraded the Terragrunt binary associated with a darwin based operating system to version 0.25.0 to officially support Terraform 0.13.x.

* Upgraded the Terragrunt binary associated with a linux based operating system to version 0.25.0 to officially support Terraform 0.13.x.

* Upgraded the Terragrunt binary associated with a windows based operating system to version 0.25.0 to officially support Terraform 0.13.x.

* Restructured the formatting for remote AWS resources by utilising region and environment identifiers as a suffix.

* Updated function references for Terragrunt commands, fixed the function brackets by closing them appropriate for environment retrieval commands and dpecified a default environment if one isn't provided.

* Added a global configuration default for region name which is obtained from the environment configuration file.

* Upgraded the Terragrunt version constraint to enforce 0.25.0 as the minimum version prerequisite.

* Implemented core routing variables necessary to configure routing resources.

* Defined the core routing terragrunt configuration file.

* Implemented the resource definitions for AWS core routing.

* Added a email record definition which is currently left commented out.

* Added the Terraform 0.13.x versions file necessary for configuring the required providers against core routing.

* Implemented the core routing outputs generated from created resources to map dependencies from functional components.

* Added the development environment core routing configuration variable value(s).

* Implemented the website component variables necessary to configure frontend resources.

* Defined the website terragrunt configuration file with dependencies.

* Implemented the resource definitions for hosting our static website.

* Added the Terraform 0.13.x versions file necessary for configuring the required providers against the website component.

* Added the website component output variables.

* Added resources for creating an SSL certificate for the static website but left it commented out.

* Corrected the local development bundle to use the name inferred by the asset chunk when splitting bundles.

* Added some comments for splitting sections of the gitignore.

* Targeted terraform ignore filed to the infrastructure directory.

* Refined the global/general ignored files.

* Ignored any artifacts stored in the infrastructure for deployment.

* Corrected the function name for retrieving the parent terragrunt configuration directory.

* Simplified the path validation.

* Initialised the component website configuration file for development.

* Modified the artifact directory validation condition to align with the others.

* Added better coverage for file coverage to automatic kick off builds & releases on the frontend.

* Added a distributable removal when building the frontend to ensure only set of changes exist.

* Updated ci build invalid removal option.

* Frontend Login Capabilities (#35)

* Implemented a react context for the user session.

* Added a roll up for the user context.

* Implemented a global roll up for contexts with the user context included.

* Implemented the user context provider against the main application entrypoint for component utilisation.

* Upgraded the header component to utilise the user context for rendering profile information and restricted pages.

* Implemented a generic menu modal component.

* Added a component roll up for the menu modal.

* Added the menu modal to the global component roll up.

* Implemented a login component for usage in any aspect for implementing user login functionality with sample data interacting with the user context.

* Added the login component roll up.

* Added the login component to the global component roll up.

* Frontend Registration Capabilities (#36)

* Implemented a complete registration page utilising various components and dynamics.

* Added the registration page roll up.

* Added the registration page to the root roll up.

* Added the registration page route to the application.

* Removed commented out lines for the backend model used to mock the inputs.

* Backend Login (#33)

* Backend code for login functionality

* mvnw files

* gitignore files

* .gitnignore delete

* new files

Co-authored-by: s3539747 <[email protected]>

* Backend Registration (#34)

* Backend code for login functionality

* Backend code for registration functionality

* gitignore

* gitignore

* gitignore files

* .gitignore delete

Co-authored-by: s3539747 <[email protected]>

* Authentication/User Pipeline (#38)

* Initialised the authentication pipeline.

* Initialised the java build template.

* Added some basic tasks around the java build template using maven.

* Specified the pipeline definition for the authentication component.

* Corrected the backend pipeline template directory location.

* Addressed template indentation applied by the IDE.

* Finalised the validation task for preparing build requirements as part of the maven lifecycle.

* Added remaining tasks for building a java solution using maven with the lifecycle inferred by maven.

* Added a test task for viewing the project outputs.

* Added a template parameter for optionally skipping tests.

* Removed the test task.

* Registration Test Failures (#39)

* fixed test, and gitignore

* deleted target in sept-registration

* Registration Pipeline (#41)

* Implemented the registration pipeline leveraging the java/maven build template.

* Corrected one of the trigger paths for inclusions.

* Added a parameter for determining whether a test failure will result in an entire pipeline failure for the java/maven builds which is enabled by default.

* Specified for the pipeline not to fail when tests do.

* Registration Deployment (#42)

* ignore deployment folder

* ignore env_file

* revert deployment ignore

* adjusted @generated to fit MySQL

* Add Dockerfile, and sample env_file.example. Adding instructions in README on how to Build & Run docker image

* gitignore

* Adjusted the env in env_file, and README changes

* removed sensitive information

* Frontend Profile (#43)

* Implemented a basic profile page.

* Added a paged component rollup.

* Added the profile page to the global page rollup.

* Added the profile page as a route in the application.

* Added a profile test for routing in the application.

* Designed and implemented the ui/features for most of the profile functionality.

* Utilised the user context for some profile information.

* Ignored DS store...

* Removed store.

* Added profile form editing functionality.

* Feature/sept 46 dashboard backend (#40)

* backend get functions

* hooking up backend to frontend

* load data from backend attempt

* axios requests reading backend

* DashboardService changes as per PR

* booking data as state

* reading from backend

* Comments

* removed dashboard component, added basic tests

* M2 Submission Documentation

- Adds documentation and folders for M2
- Contains:
--Planning for S2-4
--Retros and Reviews for S2 and 3
Note: 4 Not included as it was not yet completed at the time.
--Meeting minutes for S2-4
--Larger screenshots for the website
--Discord Conversation log
--Infrastructure /Release process image

* Revert "M2 Submission Documentation"

This reverts commit f75a20bf5d1cd8e2548a1c78955d5729e0da2089.

* M2 Documentation (#46)

* M2 Submission Documentation

- Adds documentation and folders for M2
- Contains:
--Planning for S2-4
--Retros and Reviews for S2 and 3
Note: 4 Not included as it was not yet completed at the time.
--Meeting minutes for S2-4
--Larger screenshots for the website
--Discord Conversation log
--Infrastructure /Release process image

* Revert "M2 Submission Documentation"

This reverts commit f75a20bf5d1cd8e2548a1c78955d5729e0da2089.

* M2 Submission Documentation

- Adds documentation and folders for M2
- Contains:
--Planning for S2-4
--Retros and Reviews for S2 and 3
Note: 4 Not included as it was not yet completed at the time.
--Meeting minutes for S2-4
--Larger screenshots for the website
--Discord Conversation log
--Infrastructure /Release process image

* Registration Pipeline Container Publishing (#45)

* ignore deployment folder

* ignore env_file

* revert deployment ignore

* adjusted @generated to fit MySQL

* Add Dockerfile, and sample env_file.example. Adding instructions in README on how to Build & Run docker image

* Added docker container registry login, build and push tasks.

* Aligned the contaienr registry connection.

* Corrected repository name.

* Updated the registry name.

* Updated the build id.

* Created a template for authorising, building and pushing containers into the AWS registry.

* Modified functionality to utilise the template for container interaction.

* Added environment file generation.

Co-authored-by: Giorady <[email protected]>

* Documentation update : DOD PDF (#47)

* M2 Submission Documentation

- Adds documentation and folders for M2
- Contains:
--Planning for S2-4
--Retros and Reviews for S2 and 3
Note: 4 Not included as it was not yet completed at the time.
--Meeting minutes for S2-4
--Larger screenshots for the website
--Discord Conversation log
--Infrastructure /Release process image

* Revert "M2 Submission Documentation"

This reverts commit f75a20bf5d1cd8e2548a1c78955d5729e0da2089.

* M2 Submission Documentation

- Adds documentation and folders for M2
- Contains:
--Planning for S2-4
--Retros and Reviews for S2 and 3
Note: 4 Not included as it was not yet completed at the time.
--Meeting minutes for S2-4
--Larger screenshots for the website
--Discord Conversation log
--Infrastructure /Release process image

* Update Milestone 2 Definition of Done.docx

* DOD to pdf

Updated DOD to a PDF instead of a docx

* Deployment for login (#48)

* Deployment files

* Modified readme

* dockerfile attempt (#44)

* dockerfile attempt

* fixed gitignore, restore + refactor files

* Authentication Pipeline Containers (#49)

* Integrated the container push for auth.

* Added registry name variable reference.

* Dashboard Pipeline (#51)

* Profile Integration (#52)

* Dashboard ECS (#53)

* Temporary removal of the dashboard apis.

* Readded the apis with directory lowercased.

* Refactored existing api implementation.

* Added a rollup for dashboard api functions.

* Package updates.

* Initialised the rollup.

* Removed old dashboard api.

* Updated dashboard server.

* Removed registration references.

* Profile Pipeline (#54)

* Registration service defined (#55)

* Temporary removal of the dashboard apis.

* Readded the apis with directory lowercased.

* Refactored existing api implementation.

* Added a rollup for dashboard api functions.

* Package updates.

* Initialised the rollup.

* code update (#50)

* Deployment for login (#48)

* Deployment files

* Modified readme

* dockerfile attempt (#44)

* dockerfile attempt

* fixed gitignore, restore + refactor files

* Authentication Pipeline Containers (#49)

* Integrated the container push for auth.

* Added registry name variable reference.

Co-authored-by: Muhammad Giorady <[email protected]>
Co-authored-by: s3539747 <[email protected]>

* registraton service

Co-authored-by: Nick Mladenov <[email protected]>
Co-authored-by: Muhammad Giorady <[email protected]>
Co-authored-by: s3539747 <[email protected]>

* Doc2 (#57)

* M2 Submission Documentation

- Adds documentation and folders for M2
- Contains:
--Planning for S2-4
--Retros and Reviews for S2 and 3
Note: 4 Not included as it was not yet completed at the time.
--Meeting minutes for S2-4
--Larger screenshots for the website
--Discord Conversation log
--Infrastructure /Release process image

* Revert "M2 Submission Documentation"

This reverts commit f75a20bf5d1cd8e2548a1c78955d5729e0da2089.

* Conflict resolver

* Removed conflict.

Co-authored-by: Nick Mladenov <[email protected]>

* Submission Document (#59)

* Remove submission.

* Update dsubmission.

* Remote API Misreferenced (#60)

* Completed all the missing tests & error messages (#62)

* Infrastructure Core DNS (#64)

* Removed the core routing implementation for refactoring.

* Added the core DNS variables for configuration to a particular environment.

* Added the implementation for creating the environment zone using a FQDN.

* Added the necessary outputs for DNS dependency mapping in other workspaces.

* Added the Terragrunt configuration file for core DNS.

* Added the version information for providers with Terraform 0.13.

* Updated the website dependency and variable injection to reflect core DNS changes.

* Added the development environment core dns configuration.

* Pipeline Git LFS Capacity Limits (#65)

* Disabled git LFS checkout on the backend authentication pipeline.

* Disabled git LFS checkout on the backend dashboard pipeline.

* Disabled git LFS checkout on the backend profile pipeline.

* Disabled git LFS checkout on the backend registration pipeline.

* Disabled git LFS checkout on the frontend website pipeline.

* Infrastructure Core Networking (#66)

* Created the orchestration variables for determining the region.

* Created an initial Terragrunt configuration file for core orchestration.

* Created the orchestration definiiton with the AWS provider initialised.

* Created the outputs file for the orchestration.

* Created the orchestration versions file for AWS provider(s) with Terraform 0.13.

* Created the core orchestration networking variables.

* Implemented the orchestration networking using various AWS modules for isolated VPC instance(s) per environment.

* Created the outputs file for referencing important orchestration networking resources.

* Created the orchestration networking versions file for AWS provider(s) with Terraform 0.13.

* Added the necessary environment variables for configuring the orchestration networking.

* Added the orchestration networking module for deployments.

* Added the orchestration configuration for networking.

* Infrastructure Core Cluster (#67)

* Implemented the variables necessary for EKS Kubernetes Cluster setup.

* Implemented the EKS Cluster resources wired to the network (VPC).

* Added any outputs for dependencies into other modules for the EKS Cluster configuration.

* Added the versions file for provider initialisation with Terraform 0.13.

* Added the cluster module into the core orchestration deployment.

* Added the necessary orchestration variables to support the cluster deployment.

* Added the associated variables for the core orchestration in the development environment.

* Infrastructure Cluster Namespaces (#68)

* Determined the appropriate variables for modular namespace creation.

* Implementation for the namespace creation within a Kubernetes instance.

* Created the outputs file.

* Added the versions file for provider specification with Terraform 0.13 compatibility.

* Added the amespace creation to the cluster definition.

* Added a variable for specifying the namespaces to create within the cluster.

* Specified the namespaces to provision for the orchestrated Kubernetes cluster.

* Infrastructure Cluster RBAC (#69)

* Specified the variables necessary for enabling RBAC against users.

* Implemented the Kubernetes cluster roles associated with that membership group with permissions applied.

* Created the RBAC outputs file.

* Added the versions file for specifying the provider versions for Terraform 0.13 compatibility.

* Added the RBAC module to the cluster.

* Registration integration backend-frontend (#71)

* Infrastructure Cluster Node Management (#70)

* Specified all of the necessary inputs for creating a spot termination service in Kubernetes to manage EKS spot instances with autoscaling.

* Implemented the spot instance management using Helm chart(s) created by AWS for automatically rotating instances once they've been cancelled.

* Added the outputs file.

* Created the versions file for specifying provider information with Terraform 0.13 compatibility.

* Specified the necessary inputs to the spot termination module for creation via the orchestration workspace.

* Implemented the spot termination module with all necessary references.

* Created the outputs file.

* Referenced the cluster addon module from the main orchestration workspace.

* Infrastructure Cluster Ingress (#72)

* Specified the necessary inputs for nginx ingress to be configured.

* Implemented the deployment of nginx ingress using Helm chart(s) with dynamic ingress annotations actioned via Kubernetes.

* Created the outputs file for dependency linking against the elastic load balancer host.

* Added the versions file for specifying providers with Terraform 0.13 compatibility.

* Specified the variables necessary as inputs from the orchestrator to provision nginx.

* Implemented the nginx deployment model using the module created.

* Infrastructure Cluster Routing (#73)

* Implemented the routing resources in asure via elasic load balancers with an SSL certificate being validated.

* Created an output for dependency mapping via orchestration on elb domain(s).

* Created the versions file for providers used with Terraform 0.13 for compatibility.

* Implemented the routing deployment via underlying modules mapped with they inputs and dependencies.

* Added the base domain reference within the orchestration variables.

* Specified an explict dependency with core dns and mapped the input via automatic dependency injection using inputs.

* Modified the automatic variable input injection against the root configuration to provide an environment name and resource suffix.

* Code for update user profile attributes + fixed application.yaml in login as well (#63)

* Backend support course for login, and integration for login (#74)

* Infrastructure Application Deployments (#75)

* Updated the nginx module to reference the updated service name in the defined namespace.

* Implemented the kubernetes provider definition for core orchestration.

* Implemented the helm provider definition for core orchestration.

* Added a local reference for outputting the kubernetes provider configuration to use with application dependencies and deployments.

* Added the necessary cluster information for dependencies on core orchestration.

* Created all of the necessary variable inputs for application deployments.

* Implemented the application resources for deployment into Kubernetes with a service configuration and ingress with nginx annotations.

* Created the outputs file.

* Feature/sept 23 booking form backend sql (#77)

* entity mapping and booking adding

* service tests

* Update to development code (#76)

* Infrastructure Core Networking (#66)

* Created the orchestration variables for determining the region.

* Created an initial Terragrunt configuration file for core orchestration.

* Created the orchestration definiiton with the AWS provider initialised.

* Created the outputs file for the orchestration.

* Created the orchestration versions file for AWS provider(s) with Terraform 0.13.

* Created the core orchestration networking variables.

* Implemented the orchestration networking using various AWS modules for isolated VPC instance(s) per environment.

* Created the outputs file for referencing important orchestration networking resources.

* Created the orchestration networking versions file for AWS provider(s) with Terraform 0.13.

* Added the necessary environment variables for configuring the orchestration networking.

* Added the orchestration networking module for deployments.

* Added the orchestration configuration for networking.

* Infrastructure Core Cluster (#67)

* Implemented the variables necessary for EKS Kubernetes Cluster setup.

* Implemented the EKS Cluster resources wired to the network (VPC).

* Added any outputs for dependencies into other modules for the EKS Cluster configuration.

* Added the versions file for provider initialisation with Terraform 0.13.

* Added the cluster module into the core orchestration deployment.

* Added the necessary orchestration variables to support the cluster deployment.

* Added the associated variables for the core orchestration in the development environment.

* Infrastructure Cluster Namespaces (#68)

* Determined the appropriate variables for modular namespace creation.

* Implementation for the namespace creation within a Kubernetes instance.

* Created the outputs file.

* Added the versions file for provider specification with Terraform 0.13 compatibility.

* Added the amespace creation to the cluster definition.

* Added a variable for specifying the namespaces to create within the cluster.

* Specified the namespaces to provision for the orchestrated Kubernetes cluster.

* Infrastructure Cluster RBAC (#69)

* Specified the variables necessary for enabling RBAC against users.

* Implemented the Kubernetes cluster roles associated with that membership group with permissions applied.

* Created the RBAC outputs file.

* Added the versions file for specifying the provider versions for Terraform 0.13 compatibility.

* Added the RBAC module to the cluster.

* Registration integration backend-frontend (#71)

* Infrastructure Cluster Node Management (#70)

* Specified all of the necessary inputs for creating a spot termination service in Kubernetes to manage EKS spot instances with autoscaling.

* Implemented the spot instance management using Helm chart(s) created by AWS for automatically rotating instances once they've been cancelled.

* Added the outputs file.

* Created the versions file for specifying provider information with Terraform 0.13 compatibility.

* Specified the necessary inputs to the spot termination module for creation via the orchestration workspace.

* Implemented the spot termination module with all necessary references.

* Created the outputs file.

* Referenced the cluster addon module from the main orchestration workspace.

* Infrastructure Cluster Ingress (#72)

* Specified the necessary inputs for nginx ingress to be configured.

* Implemented the deployment of nginx ingress using Helm chart(s) with dynamic ingress annotations actioned via Kubernetes.

* Created the outputs file for dependency linking against the elastic load balancer host.

* Added the versions file for specifying providers with Terraform 0.13 compatibility.

* Specified the variables necessary as inputs from the orchestrator to provision nginx.

* Implemented the nginx deployment model using the module created.

* Infrastructure Cluster Routing (#73)

* Implemented the routing resources in asure via elasic load balancers with an SSL certificate being validated.

* Created an output for dependency mapping via orchestration on elb domain(s).

* Created the versions file for providers used with Terraform 0.13 for compatibility.

* Implemented the routing deployment via underlying modules mapped with they inputs and dependencies.

* Added the base domain reference within the orchestration variables.

* Specified an explict dependency with core dns and mapped the input via automatic dependency injection using inputs.

* Modified the automatic variable input injection against the root configuration to provide an environment name and resource suffix.

* Code for update user profile attributes + fixed application.yaml in login as well (#63)

* Backend support course for login, and integration for login (#74)

* Infrastructure Application Deployments (#75)

* Updated the nginx module to reference the updated service name in the defined namespace.

* Implemented the kubernetes provider definition for core orchestration.

* Implemented the helm provider definition for core orchestration.

* Added a local reference for outputting the kubernetes provider configuration to use with application dependencies and deployments.

* Added the necessary cluster information for dependencies on core orchestration.

* Created all of the necessary variable inputs for application deployments.

* Implemented the application resources for deployment into Kubernetes with a service configuration and ingress with nginx annotations.

* Created the outputs file.

Co-authored-by: s3539747 <[email protected]>
Co-authored-by: Muhammad Giorady <[email protected]>

* Unit tests

* Revert "Update to development code (#76)" (#78)

This reverts commit eab1745c4aa810be99b5ea00eca655019e59583a.

Co-authored-by: s3539747 <[email protected]>
Co-authored-by: Muhammad Giorady <[email protected]>

* Infrastructure Service Accounts (#79)

* Devised the orchestration service account variables to provision the necessary service accounts in the cluster scoped to certain namespaces for the environment.

* Implemented the service account resources within the Kubernetes cluster with appropriate roles/permissions attached.

* Created the service account outputs containing Kubernetes access token for connection to the environment for cicd.

* Added the versions file for specifying provider versions with terraform version 0.13 compatibility.

* Added the service account deployment to the orchestration workspace with the kuebrnetes token outputted leveraging the environment service account credentials.

* Feature/sept 111 booking form refactor (#81)

* replace formik with antd

* form returning correct values for booking creation

* booking date format

* add employee field, update time

* Feature/sept 107 frontend integration profile (#80)

* Profile integration frontend-backend

* delete .env

* .gitignore add .env

* Env variables

* Feature/sept 114 booking backend refactor (#82)

* booking entity rewrite

* booking repo rewrite

* booking service rewrite

* controller refactor

* test refactor + expanded existence tests

* Pipeline AWS Secrets (#83)

* Implemented a template for retrieving application configuration from AWS secret management.

* Added a template for obtaining the application secrets from AWS.

* Added a temporary task for obtaining all environment variables.

* Corrected the environment variable reference.

* Added an output for mapping secrets.

* Updated the iteration to separate values by commas.

* Corrected the jq parsing when special characters are present inside the key.

* Temporarily added the value retrieved to output.

* Added another verbose output.

* Removed tests.

* Corrected the environment variable evaluation by escaping nested quotes.

* Removed the complete environment list.

* Added a task to the secret list for displaying the secrets set.

* Added a parameter for showing set environment variables when specified during debugging.

* Enabled the debugging secrets output.

* Updated the parameter type.

* Addressed task indentation.

* Pipeline Docker Build Arguments (#84)

* Added a parameter for supporting dockerfile build arguments.

* Added a task for building the docker container with additional arguments when they're supplied.

* Modified the existing build and push task to only push the container as it has already been built.

* Added as default value for the base directory where the dockerfile is located.

* Added a test at the end for files.

* Added a custom argument for the jar file location.

* Added a temporary task for displaying pipeline environment variables.

* Removed the file list test.

* Added the default tag for jar file location to authentication api.

* Added the default tag for jar file location to registration api.

* FrontEnd Environment File Fix (#85)

* revert env variables

* package & webpack

* webpack

* Bugfix/sept 126 build fix, tests error fix, and defaults for env (#86)

* Fixed build error & tests error for login & registration

* added defaults

* sens cred

* Feature/sept 108 booking backend integration (#87)

* hookup backend and frontend

* log backend response

* yarn.lock update

* dockerize and prepare backend for deployment

* switch to application.yml

* default values and removed dotenv

* axios URI

* changed port, added .env to gitignore

* mistyped default port

* Kubernetes Application Deployment Nginx Rewrite (#89)

* Corrected the condition used for rewriting the ingress target onwards to the application.

* Updated gitignore files.

* Pipeline Secrets - Authentication, Registration, Profile (#88)

* Updated the JWS environment variable name.

* Added the database endpoint as an environment variable for the application.

* Updated the database username environment variable.

* Updated the database password environment variable.

* Defined the application port.

* Defined the database driver.

* Modified the method for retrieving the driver.

* Commented out env file generation.

* Added secret retrieval to the registration pipeline.

* Removed environment file generation for registration.

* Added the secret retrieval to the profile pipeline.

* Booking API Pipeline (#90)

* Implemented the booking api pipeline.

* Removed the ability for showing the environment variables retrieves from AWS due to Azure not masking the secrets consistently.

* Dashboard Containerisation (#92)

* refactor and env variable set-up

* Dockerize

* added .env to gitignore and changed ports

* backend changes

* remove .env

* Booking Database Purge After Testing (#91)

* empty db after test

* remove mockbookings from db after tests

* remove deleteAll()

* removed .env

* .env removal

* Pipeline Deployment Template (#94)

* Implemented a IaC deployment template to currently install the necessary binaries.

* Added a temporary test pipeline for core deployments using IaC.

* Updated the permissions for moving files on the agent operating system.

* Added the pipeline revision number.

* Added permission alignment for binary installation.

* Updated the terragrunt deployment version.

* Implemented the ability to run infrastructure actions against core and components.

* Updated the test to plan core dns.

* Updated the AWS connection name.

* Included the working directory directly inside the Terragrunt command.

* Updated the terraform evalation.

* Updated command output.

* Directory change to the infrastructure root.

* Copying binaries into appropriate infrastucture directory.

* Added execution iteration for initialising first.

* Added an environment definition for deployment.

* Corrected the environment variable definition block.

* Corrected deployment iteration.

* Added working directory.

* Customised command behaviours.

* Added verbose logging.

* Enhanced command.

* Removed init command.

* Added a tree command.

* Removed version location temporarily.

* Restored binary location.

* Added environment variable output.

* Removed disableAutoCwd.

* Test different script type.

* Restructured env.

* Removed location.

* Indentation.

* Restored format.

* Local terragrunt.

* Error outputs.

* Permissions.

* Added join.

* Explicit reference to config file.

* Removed join.

* Updated terragrunt version.....

* Removed tree.

* Reset working dir and removed default config file declaration.

* Removed permission adjustment.

* Missing closing quote.

* Removed test core pipeline.

* Booking API Infrastructure (#95)

* Defined the variable inputs necessary for the booking api component infrastructure.

* Implemented the component infrastructure associated with the booking api.

* Setup the terragrunt configuration file for the booking api.

* Created the output file.

* Initialised the versions file for Terraform 0.13 compatibility with providers.

* Specified the booking api component configuration for the development environment.

* Registration API Infrastructure (#97)

* Defined the variable inputs necessary for the registration api component infrastructure.

* Implemented the component infrastructure associated with the registration api.

* Created the output file.

* Setup the terragrunt configuration file for the registration api component.

* Initialised the versions file for Terraform 0.13 compatibility with providers.

* Specified the registration api component configuration for the development environment.

* add missing extension to DockerFile (#98)

* Dashboard API Infrastructure (#99)

* Defined the variable inputs necessary for the dashboard api component infrastructure.

* Implemented the component infrastructure associated with the dashboard api.

* Setup the terragrunt configuration file for the dashboard api component.

* Created the output file.

* Initialised the versions file for Terraform 0.13 compatibility with providers.

* Specified the dashboard api component configuration for the development environment.

* Authentication API Infrastructure (#100)

* Defined the variable inputs necessary for the authentication api component infrastructure.

* Implemented the component infrastructure associated with the authentication api.

* Setup the terragrunt configuration file for the authentication api component.

* Created the output file.

* Initialised the versions file for Terraform 0.13 compatibility with providers.

* Specified the authentication api component configuration for the development environment.

* Profile API Infrastructure (#101)

* Defined the variable inputs necessary for the profile api component infrastructure.

* Implemented the component infrastructure associated with the profile api.

* Setup the terragrunt configuration file for the profile api component.

* Created the output file.

* Initialised the versions file for Terraform 0.13 compatibility with providers.

* Specified the profile api component configuration for the development environment.

* Core Infrastructure Pipeline (#102)

* Implemented a staged deployment template for the Terraform lifecycle.

* Created a core deployment pipeline for deploying core infrastructure with all Terraform lifecycles independently.

* Separated the environments for each action type.

* Added uniqueness to each stage name when deploying multiple components.

* Clarified the name for orchestration deployments.

* Updated dependency names.

* Addded a mandatory directory specification for the root Infrastructure location when running deployments.

* Added the missing directory for Infrastructure during plans.

* Added execution permission override for infrastructure bianaries.

* Booking Tests Failures (#93)

* Creation test fix

* formatting

* delete by object rather than id

* comment out exist test to check pipeline

* missing extension in dockerfile

* save mockBooking differently for one test

* update application_container.tag

* Bugfix/sept 126 api backend & frontend routing (#96)

* Fixed build error & tests error for login & registration

* added defaults

* sens cred

* fixed backend routing

* /profile to /me

* frontend api routing adjustments

* modified the doc

* modified the url

* fixed readme & profile to me

* base urls

* Update FrontEnd/src/api/login/LoginService.ts

Co-authored-by: s3539747 <[email protected]>

* Update FrontEnd/src/api/profile/ProfileService.ts

Co-authored-by: s3539747 <[email protected]>

* Update FrontEnd/src/api/profile/ProfileUpdateService.ts

Co-authored-by: s3539747 <[email protected]>

* Update FrontEnd/src/api/registration/RegistrationService.ts

Co-authored-by: s3539747 <[email protected]>

* updated app_container tags

Co-authored-by: s3539747 <[email protected]>

* Booking Navigation (#103)

* incorrect URI

* change cross cross origin set to wildcard

* add booking form to navbar

* changed <div> to react frag

* update application_container.tag

* Booking API Pipeline Deployments (#104)

* Added infrastructure artifact publishing.

* Modified the environment to be provided through the template parameters to differ application deployment permissions.

* Added the deployment template targeting the booking api component infrastructure definition.

* Updated the template location for components.

* Corrected the deployment stage name.

* Added the ability to skip a build.

* Removed verbosity on deployments.

* Corrected condition.

* Dashboard API Pipeline Deployments (#105)

* Added an infrastructrue publishment task for release consumption.

* Added a pipeline parameter for accepting a custom application port.

* Implemented the ability to retrieve the necessary secrets for testing during the build.

* Allowed the the build process to be skipped for deployments.

* Implemented the ability to deploy the dashboard api using the infrastructure template.

* Registration API Pipeline Deployments (#108)

* Implemented a publishing activity for passing infrastructure artifact(s) onto the subsequent deployment stages.

* Implemented the ability to skip the build activities for deployment runs.

* Implemented the deployment stages for registration api using deployment template(s).

* Authentication API Pipeline Deployments (#107)

* Added the ability to specify a custom application port during build.

* Added a task for publishing the infrastructure artifact to assist with deployment.

* Implemented the ability to skip building and progress with deployment.

* Implemented deployment capabilities for authentication api reusing existing templates.

* Profile API Pipeline Deployment (#109)

* Implemented a publishing activity for passing infrastructure artifact(s) onto the subsequent deployment stages.

* Implemented the ability to skip the build activities for deployment runs.

* Implemented the deployment stages for profile api using deployment template(s).

* Added the missing store for pulling secrets.

* Dashboard Endpoint Adjustments (#106)

* changed endpoint

* Changed cross origin

* changed container tag

* Pipeline Infrastructure Indefinite Delays (#110)

Addresses the issue where destruction stages are halting due to an interactive prompt being present in the pipeline.

* change UPCOMING_STATUS to match backend (#111)

* Bugfix/sept 126 CORS & SQL (#113)

* Fixed build error & tests error for login & registration

* added defaults

* sens cred

* fixed backend routing

* /profile to /me

* frontend api routing adjustments

* modified the doc

* modified the url

* fixed readme & profile to me

* base urls

* Update FrontEnd/src/api/login/LoginService.ts

Co-authored-by: s3539747 <[email protected]>

* Update FrontEnd/src/api/profile/ProfileService.ts

Co-authored-by: s3539747 <[email protected]>

* Update FrontEnd/src/api/profile/ProfileUpdateService.ts

Co-authored-by: s3539747 <[email protected]>

* Update FrontEnd/src/api/registration/RegistrationService.ts

Co-authored-by: s3539747 <[email protected]>

* updated app_container tags

* allowed-origins

* app tag

Co-authored-by: s3539747 <[email protected]>

* Static Website Pipeline Deployments (#112)

* Implemented a website artifact publishing script to utilise inside the pipeline.

* Added the ability to switch between build procedures to configure infrastructure deployments.

* Added the ability to optionally deploy infrastructure.

* Added the ability to deploy the website alongside infrastructure using the deployment template.

* Addressed conditionals expression.

* Addressed remaining conditions.

* Simplified conditions.

* Updated template location.

* Application Pipeline CI Latest Deployment (#114)

* Implemented a configuration patching script for updating component tags in tfvars.

* Updated parameter position.

* Added the ability to automatically deploy the latest tag on automatic builds for the authentication api.

* Added the ability to automatically deploy the latest tag on automatic builds for the booking api.

* Added the ability to automatically deploy the latest tag on automatic builds for the dashboard api.

* Added the ability to automatically deploy the latest tag on automatic builds for the profile api.

* Added the ability to automatically deploy the latest tag on automatic builds for the registration api.

* Reverted unwanted commit.

* Updated image tag argument.

* Updated parameter positioning.

* Updated arguments formatting to avoid newlines invalidating the script.

* Feature/sept 134 dashboard backend tests (#115)

* search unit tests

* re-added application.yml

* CORS MAPPING FIX (#116)

* Fixed build error & tests error for login & registration

* added defaults

* sens cred

* fixed backend routing

* /profile to /me

* frontend api routing adjustments

* modified the doc

* modified the url

* fixed readme & profile to me

* base urls

* Update FrontEnd/src/api/login/LoginService.ts

Co-authored-by: s3539747 <[email protected]>

* Update FrontEnd/src/api/profile/ProfileService.ts

Co-authored-by: s3539747 <[email protected]>

* Update FrontEnd/src/api/profile/ProfileUpdateService.ts

Co-authored-by: s3539747 <[email protected]>

* Update FrontEnd/src/api/registration/RegistrationService.ts

Co-authored-by: s3539747 <[email protected]>

* updated app_container tags

* allowed-origins

* app tag

* Fixed routing

* cors issue & main.tf fix

* final fix ;)

* latest tag

* removed .env contents

Co-authored-by: s3539747 <[email protected]>

* Milestone 3 Documentation

* Documentation (#118)

* M2 Submission Documentation

- Adds documentation and folders for M2
- Contains:
--Planning for S2-4
--Retros and Reviews for S2 and 3
Note: 4 Not included as it was not yet completed at the time.
--Meeting minutes for S2-4
--Larger screenshots for the website
--Discord Conversation log
--Infrastructure /Release process image

* Revert "M2 Submission Documentation"

This reverts commit f75a20bf5d1cd8e2548a1c78955d5729e0da2089.

* Milestone 3 Documentation

* Updated Project Report

Added Pipeline Workflow diagram and updated Report to match

* Added M1 and M2 Submissions

Added M1 and M2 submission folders to the repo

* Submission Documentation: Deployments (#119)

* Added the necessary deployment instructions for both local and remote (pipeline) against infrastructure core and application/components.

* Added a copy of the infrastructure documents inside of the M3 submission.

* Updated the deployment instructions document to be more apparent to the markers....

* Documentation (#121)

* M2 Submission Documentation

- Adds documentation and folders for M2
- Contains:
--Planning for S2-4
--Retros and Reviews for S2 and 3
Note: 4 Not included as it was not yet completed at the time.
--Meeting minutes for S2-4
--Larger screenshots for the website
--Discord Conversation log
--Infrastructure /Release process image

* Revert "M2 Submission Documentation"

This reverts commit f75a20bf5d1cd8e2548a1c78955d5729e0da2089.

* Milestone 3 Documentation

* Updated Project Report

Added Pipeline Workflow diagram and updated Report to match

* Added M1 and M2 Submissions

Added M1 and M2 submission folders to the repo

* Contribution changes

* Delete M3 Submission.docx

* FIxed Missing diagram and contribution changes

* MORE CONFLICT ISSUES.

Co-authored-by: s3601172 <[email protected]>
Co-authored-by: Muhammad Giorady <[email protected]>
Co-authored-by: Thanh <[email protected]>
Co-authored-by: Gihan Abenayake (s3779792) <[email protected]>
Co-authored-by: Gihan Abenayake (s3779792) <[email protected]>
Co-authored-by: Giorady <[email protected]>