https://github.com/icecube/nucat

https://github.com/icecube/nucat

Science Score: 8.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization icecube has institutional domain (icecube.wisc.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary
Last synced: 4 months ago · JSON representation

Repository

Basic Info
Statistics
  • Stars: 0
  • Watchers: 6
  • Forks: 2
  • Open Issues: 1
  • Releases: 0
Created almost 5 years ago · Last pushed over 4 years ago
Metadata Files
Readme Contributing

README.md

NuCat

This is an online catalogue of likely astrophysical neutrino events published by IceCube collaboration. The previous application can be found here using HTML / CSS / JavaScript + Express JS / NodeJS + Firestore hosted on Google Firebase. This project, however, is developed using MERN (MongoDB, Express JS, React JS and Node JS) Stack. The prototype version is being hosted on IceCube servers and can be accessed here. This project is meant to catalogue these neutrino events as well as provide means of inputting data into the database.

Physics

This project is meant to provide an easy means of visualizing and analyzing data captured by IceCube neutrino detectors. It provides a skymap of all neutrino events as well as a list of the events including all important information tied to an event, including position, error, energy, and time of event. This can be used as a tool to help analysis. This will also serve as a catalog containing all publications relevant to a neutrino event.

Installation

This project needs NodeJS version 12.4.0, so to run it locally, you will need to download it if you don't already have it. To download Node for your OS, check here. Once you have Node, in both NuCat/server and NuCat/client run npm install to install the necessary packages.

Test Locally

Create a file server/.env and put environment variables inside. For IceCubers, please make a request in the slack channel #alert_db_webpage. For people outside of IceCube, we have a clound database for testing you can access to with the below enviroment variables:

USERNAME=readOnly PASS=9PcgQQKj5LwzA63C DB_USERNAME=readOnly DB_PASS=9PcgQQKj5LwzA63C DB_ADDRESS=nucatgt.jfmfo.mongodb.net DB_NAME=neutrino-catalog

You will only have READ access to a database which contains some fake neutrinos.

With Node

In .../NuCat/client/src/api/index.js, choose the testing baseURL. (Line 5, uncomment this baseURL but comment out other baseURLs)

Launch the backend:

(pwd).../NuCat/server$ npm run server

Launch the frontend:

(pwd).../NuCat/client$ npm run start

The last command should automatically open your browser. If not, open the brower and go to http://localhost:8000/

With Docker

In .../NuCat/client/src/api/index.js, choose the Docker baseURL. (Line 6, uncomment this baseURL but comment out other baseURLs)

You will need to install docker for your OS. To do so, follow the tutorial for your OS here. Once docker is installed, you must build the front and backend and launch it.

Build the backend:

(pwd).../NuCat$ sudo docker build --pull --rm -f "server/Dockerfile" -t nucat-node:v1.1 "server"

Build the frontend:

(pwd).../NuCat$ sudo docker build --pull --rm -f "client/Dockerfile" -t nucat-react:v1.4 "client"

Launch the website:

(pwd).../NuCat$ sudo docker-compose -f "docker-compose-dev.yml" up -d --build

Now you can open your browser at http://localhost:8000. It will not open automatically.

REST APIs and Usage

Neutrino events can be manipulated in the database a few different ways using REST APIs. This includes getting, inserting, and deleting data. Below are a few ways a user can manipulate data with the api.

  • get from https://nucat.icecube.aq/api/infos
  • get from https://nucat.icecube.aq/api/candidates
  • get from https://nucat.icecube.aq/api/info/[id]
  • get from https://nucat.icecube.aq/api/candidate/[id]
  • post to https://nucat.icecube.aq/api/candidate/[id]
  • post to https://nucat.icecube.aq/api/info/[id]
  • delete from https://nucat.icecube.aq/api/candidate/[id]
  • delete from https://nucat.icecube.aq/api/info/[id]

post and delete require authentication.

Python

You can use the requests library to interact with the database with python. Documentation can be found here.

Postman

Postman is an api app that helps visualize api structure. See more here.

Frontend

The frontend also provides a simple way of adding data with proper credentials.

Contributing

For IceCubers, please follow the GitGuide:GitHub-in-IceCube or refer to CONTRIBUTING.md to contribute code.

We also welcome contributions from the community. For more detailed information, refer to CONTRIBUTING.md.

Owner

  • Name: IceCube Neutrino Observatory
  • Login: icecube
  • Kind: organization
  • Location: South Pole Station, Antarctica

Repo Guide: https://github.com/icecube/icecube.github.io/wiki

GitHub Events

Total
Last Year

Dependencies

client/package-lock.json npm
  • 1546 dependencies
client/package.json npm
  • @material-ui/core ^4.11.0
  • @testing-library/jest-dom ^5.11.6
  • @testing-library/react ^11.2.2
  • @testing-library/user-event ^12.2.2
  • axios ^0.21.0
  • bootstrap ^4.5.3
  • material-table ^1.69.2
  • react ^17.0.1
  • react-dom ^17.0.1
  • react-router-dom ^5.2.0
  • react-scripts 4.0.1
  • react-table ^7.6.2
  • styled-components ^5.2.1
  • web-vitals ^0.2.4
server/package-lock.json npm
  • 198 dependencies
server/package.json npm
  • basic-auth ^2.0.1
  • body-parser ^1.19.0
  • cors ^2.8.5
  • dotenv ^8.2.0
  • express ^4.17.1
  • mongoose ^5.10.15
  • mongoose-findorcreate ^3.0.0
  • nodemon ^2.0.6
  • tsscmp ^1.0.6