Skip to content

Latest commit

 

History

History
111 lines (87 loc) · 3.4 KB

README.md

File metadata and controls

111 lines (87 loc) · 3.4 KB

Chemistry Cafe

GitHub Releases License Docker builds NodeJS Dotnet codecov FAIR checklist badge DOI

ChemistryCafe is a web application built with React, Vite, and TypeScript. The app uses various libraries and frameworks such as MUI, Axios, and styled-components to provide a seamless and modern user experience. This README provides information about the application and how to run the code locally.

Getting Started

Installing chemistry-cafe locally

  1. Required: To build and install chemisty-cafe locally, you must have:

    • dotnet
    • Node.js
    • Docker
  2. Clone the repository: Open a terminal window, navigate to a folder where you would like the Chemistry Cafe files to exist, and run the following commands:

    git clone https://github.com/NCAR/chemistry-cafe.git
    cd chemistrycafe
    
  3. Install dependencies for frontend:

    cd frontend
    npm install
    cd ..
  4. Install dotnet(macOS)

    brew install dotnet
    

Running Chemistry Cafe with Docker Compose

You must have Docker Desktop installed and running. With Docker Desktop running, open a terminal window. To build the project run:

docker compose up --build

When finished, run:

docker compose down

Note: To view changes, you must run the docker compose down and then run the project again.

Running Chemistry Cafe Locally

You must open 3 terminals and run the following commands in each:

Terminal 1

cd backend
dotnet run

Terminal 2

cd frontend
npm run dev

Terminal 3

docker compose up mysql

Testing

To test frontend

cd frontend
npm run test:coverage

If all tests past, the coverage report will generate in frontend/coverage/index.html

To test backend

Terminal 1

docker compose up mysql

Terminal 2

cd backend
dotnet test --collect "Code Coverage;Format=cobertura"  --settings ..\.runsettings
reportgenerator -reports:"TestResults\<guid>\<file-prefix>.cobertura.xml" -targetdir:coveragereport -reporttypes:Html -classfilters:-MySqlConnector.* -filefilters:-/_/src/MySqlConnector/*

If all tests past, the coverage report will generate in backend/coveragereport/index.html

License

Copyright (C) 2018-2024 National Center for Atmospheric Research