Skip to content

API server of the cs-insights project. This is the main part of storing data and accessing an external data analysis endpoint. It uses a mongoDB instance to store everything and queries the cs-insights-prediction-endpoint to get machine learning results.

License

Notifications You must be signed in to change notification settings

jpwahle/cs-insights-backend

Repository files navigation



Code Coverage Actions Status Actions Status GitHub Release Docs License: MIT Code style: Airbnb All-time uptime 100.00% Response time 773


Getting Started

This project is part of the cs-insights-ecosystem. Please refer to the readme here to spin up the development and production system.

Repository

Structure

The src-folder contains the main code with the following structure:

  • /app: The main logic for our app
    • /controllers: Controls api endpoints and requests/responses
    • /middleware: Middleware for authentication
    • /models: Data models of the database schemas
  • /config: Configuration parameters for the app
  • Other files

Packages

The following is a list of some notable packages we use:

Tests

This repository follows clean code principles using static typing, linting, unit tests, semantic releases, and documentation. In the following you can find details for running these tests in the cloud and locally.

Continuous Integration (CI)
  1. Whenever you create a pull request against the dev branch, typing, linting, and unit tests are checked.
  2. Whenever a maintainer or admin creates a pull request from the dev to the main branch, a new release, docker image, documentation, and coverage report is generated.
Local Pipelines

To run these CI pipelines such as tests and linting locally install act. With act you can run CI tests in docker containers the way they are run on GitHub actions.

To run the full check suite with act you need the full ubuntu image (>12GB) and then execute:

act

To run a single check like the Test from the pipeline, execute:

act -j Test

You can also run the tests without act using:

npm run test
npm run lint

We use an additional npm script test2 to make it easier to run specific tests using grep:

npm run test2 -- -g <query>

This will not generate a code coverage report and by replacing <query> with e.g. topics only tests or test groups that contain the word topics will be run.

Documentation

The auto-generated redoc documentation can be found here.

A general overview of standard endpoints, parameters, and possible queries can be found here.

Contributing

Fork the repo, make changes and send a PR. We'll review it together!

Commit messages should follow Angular's conventions.

License

This project is licensed under the terms of MIT license. For more information, please see the LICENSE file.

Citation

If you use this repository, or use our tool for analysis, please cite our work:

@inproceedings{Wahle2022c,
  title        = {D3: A Massive Dataset of Scholarly Metadata for Analyzing the State of Computer Science Research},
  author       = {Wahle, Jan Philip and Ruas, Terry and Mohammad, Saif M. and Gipp, Bela},
  year         = {2022},
  month        = {July},
  booktitle    = {Proceedings of The 13th Language Resources and Evaluation Conference},
  publisher    = {European Language Resources Association},
  address      = {Marseille, France},
  doi          = {},
}

About

API server of the cs-insights project. This is the main part of storing data and accessing an external data analysis endpoint. It uses a mongoDB instance to store everything and queries the cs-insights-prediction-endpoint to get machine learning results.

Resources

License

Stars

Watchers

Forks

Packages

No packages published