summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui
AgeCommit message (Collapse)Author
2021-07-02api: Add stricter validation of input/output dataFabian Mastenbroek
This change adds stricter validation of data that enters and leaves the database. As a result, we clearly separate the database model from the data model that the REST API exports.
2021-06-29ui: Enable React Strict Mode via Next.jsFabian Mastenbroek
This change enables React Strict Mode via Next.js configuration in order to highlight potential problems with the web application.
2021-06-29ui: Delete unused NGINX configurationFabian Mastenbroek
2021-06-01build: Update to Next.js 10.2.3Fabian Mastenbroek
This change updates the web frontend to Next.js version 10.2.3. This addresses a vulnerability in a dependency in Next.js as well as enabling use of native ESLint integration of Next.js.
2021-05-18ui: Fix frontend deployment scriptsFabian Mastenbroek
This change fixes the deployment scripts necessary for the frontend and ensures that runtime variables work again.
2021-05-18ui: Re-add support for SentryFabian Mastenbroek
This change re-adds the support for Sentry. This was lost during the migration from CRA to Next.js.
2021-05-18docs: Add instructions on configuring Auth0 for OpenDCFabian Mastenbroek
This change updates the deployment guide to include instructions on configuring Auth0 for OpenDC. This process should not be much more difficult than creating the Google Application.
2021-05-18ui: Migrate to FontAwesome 5 React libraryFabian Mastenbroek
This change updates the frontend to use the FontAwesome 5 React library that renders SVG icons as opposed to CSS icon fonts. This migration resolves a couple of issues we had with server-side rendering of the previous FontAwesome icons.
2021-05-18ui: Migrate to Auth0 as Identity ProviderFabian Mastenbroek
This change updates the frontend codebase to move away from the Google login and instead use Auth0 as generic Identity Provider. This allows users to login with other accounts as well. Since Auth0 has a free tier, users can experiment themselves with OpenDC locally without having to pay for the login functionality. The code has been written so that we should be able to migrate away from Auth0 once it is not a suitable Identity Provider for OpenDC anymore.
2021-05-18api: Migrate to Flask RestfulFabian Mastenbroek
This change updates the API to use Flask Restful instead of our own in-house REST library. This change reduces the maintenance effort and allows us to drastically simplify the API implementation needed for the OpenDC v2 API.
2021-05-17ui: Restructure OpenDC frontendFabian Mastenbroek
This change updates the structure of the OpenDC frontend in order to improve the maintainability of the frontend.
2021-05-17ui: Move modal state outside of ReduxFabian Mastenbroek
This change updates the frontend so that the modal state is not stored inside Redux but instead is stored using the useState hook. This simplifies the design of the modal components.
2021-05-17ui: Simplify projects pageFabian Mastenbroek
This change simplifies the logic and components of the projects page and reduces its dependency on Redux for simple operations.
2021-05-17ui: Address technical dept in frontendFabian Mastenbroek
2021-05-17ui: Migrate from CRA to Next.jsFabian Mastenbroek
This change updates the web frontend to use Next.js instead of Create React App (CRA). Next.js enables the possibility of rendering pages on the server side (which reduces the time to first frame) and overall provides a better development experience. Future commits will try to futher optimize the implementation for Next.js.
2021-05-12ui: Ensure Redux logger is last in middleware chainFabian Mastenbroek
This change updates the Redux store initialization to ensure that the Redux logger is last in the middleware change. If we do not do this, Redux Logger might log thunds and promises, but not actual actions. See https://github.com/LogRocket/redux-logger/issues/20
2021-05-12ui: Move communication to REST APIFabian Mastenbroek
This change removes the socket.io websocket connection/client in favour of the OpenDC REST API. The socket.io websocket implementation was intended to be used for interactive and collaborative datacenter design and exploration. However, we do not support this functionality at the moment (collaborative design and exploration) and having the entire API run over this websocket connection is fragile and not standard practice. To improve maintainability, we therefore remove the websocket implementation in favour of the OpenDC REST API implementation using the fetch API. If we want to implement collaboration in the future, we will develop appropriate extensions in conjuction with the existing REST API. For this, we should look for standard and existing implementation of this functionality.
2021-05-12ui: Move component styling into CSS modulesFabian Mastenbroek
This change updates the frontend codebase by moving the component styling into CSS module files as opposed to the global styles which we used before. In addition, I have changed the syntax to the newer SCSS syntax, which is more similar to CSS. These changes reduces the styling conflicts that can occur between components and allows us to migrate to systems that do not support importing global styles in components. Moreover, we can benefit from treeshaking using CSS modules.
2021-05-10ui: Update mathjsFabian Mastenbroek
This change updates the mathjs dependency to version 7.6.0 in order to fix the high-severity vulnerability in mathjs version lower than 7.5.1.
2021-05-10ui: Fix version number in package.jsonFabian Mastenbroek
This change fixes the version number in package.json which contained the suffix "-rc1", which is apparently not supported by npm.
2021-05-10ui: Update Bootstrap dependenciesFabian Mastenbroek
2021-05-10ui: Update Sentry dependenciesFabian Mastenbroek
2021-05-10ui: Update React dependenciesFabian Mastenbroek
This change updates the React dependencies to version 17, in order to keep up to date with React.
2021-05-10ui: Adapt home components to ReactstrapFabian Mastenbroek
2021-05-10ui: Fix undefined project in NewScenarioModalFabian Mastenbroek
2021-05-10ui: Do not prevent default on mouse scrollFabian Mastenbroek
This change removes the prevent default from the mouse scroll since Chrome does not allow it anymore.
2021-05-10ui: Do not clutter component tree with Redux connectsFabian Mastenbroek
This change refactors the frontend to use hooks for obtaining state within the Redux store as opposed to using Higher-Order Components (HOCs). This eliminates a lot of clutter in the components.
2021-05-10build: Move to next releaseFabian Mastenbroek
This change moves the version number to the next release, v2.1-rc1.
2021-05-10build: Mark v2.0 releaseFabian Mastenbroek
This change updates the version numbers officially to v2.0 in order to start the release process.
2021-05-09ui: Remove unnecessary print statementFabian Mastenbroek
2021-05-09ui: Update runtime variable workaroundFabian Mastenbroek
This change updates the workaround used to access runtime variables in the React frontend, in order to improve the ergonimics when using the development mode of CRA (Create React App).
2021-05-09ui: Include figure on OpenDC 2.0 architectureFabian Mastenbroek
2021-05-09ui: Link to OpenDC 2.0 paperFabian Mastenbroek
2021-05-09ui: Update screenshots of OpenDC user-interfaceFabian Mastenbroek
2021-05-09ui: Actualize team sectionFabian Mastenbroek
2021-05-08ui: Update disclaimer in footerFabian Mastenbroek
2021-05-08ui: Migrate from node-sass to sassFabian Mastenbroek
This change migrates the node-sass dependency to sass in order to support Node 16.
2021-05-05build: Support runtime variables in frontend Docker imageFabian Mastenbroek
This change adds support for dynamically specifying various variables for the frontend Docker image through environmental variables. Previously, these were embedded directly into the source code, which requires rebuilding the entire image to change these variables.
2021-05-05build: Update Docker ignores to prevent unnecessary buildsFabian Mastenbroek
This changes updates the .dockerignore files in the repository in order to prevent building when not necessary.
2021-05-05ci: Remove unused Gitlab and Travis CI configurationsFabian Mastenbroek
2021-05-03docs: Revamp project documentationFabian Mastenbroek
This change updates the project documentation by moving most of the documentation to the docs directory.
2021-04-25build: Migrate to flat project structureFabian Mastenbroek
This change updates the project structure to become flattened. Previously, the simulator, frontend and API each lived into their own directory. With this change, all modules of the project live in the top-level directory of the repository. This should improve discoverability of modules of the project.