/SMECS

Software Metadata Extraction and Curation Software (SMECS)

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

Software Metadata Extraction and Curation Software (SMECS)

A web application to extract and curate software metadata following the codemeta software metadata standard.

SMECS facilitates the extraction of software metadata from repositories on GitHub/GitLab. It offers a user-friendly graphical user interface for visualizing the retrieved metadata. This empowers Research Software Engineers (RSE) to curate the extracted metadata according to their requirements. Ultimately, SMECS delivers the curated metadata in JSON format, enhancing usability and accessibility.


Authors: Stephan Ferenz, Aida Jafarbigloo

Installation and Usage

Getting started

  1. Cloning the repository
    • Copy URL of the project from Clone with HTTPS.
    • Change the current working directory to the desired location.
    • Run git clone <URL> in command prompt. (GitBash can be used as well)
  2. Creating virtual environment
    • Make sure Python is installed.

    • Ensure you can run Python from command prompt.
      • On Windows: Run py --version.
      • On Unix/MacOS: Run python3 --version.
    • Create the virtual environment by running this code in the command prompt.
      • On Windows: Run py -m venv <name-of-virtual-environment>.
      • On Unix/MacOS: Run python3 -m venv <name-of-virtual-environment>.
    • Activate virtual environment.
      • On Windows: Run env\Scripts\activate.
      • On Unix/MacOS: Run source env/bin/activate.

      env is the selected name for the virtual environment. Note that activating the virtual environment change the shell's prompt and show what virtual environment is being used.

  3. Managing Packages with pip
    • Ensure you can run pip from command prompt.
      • On Windows: Run py -m pip --version.
      • On Unix/MacOS: Run python3 -m pip --version.
    • Go to meta_tool directory. (cd meta_tool)
    • Install a list of requirements specified in a Requirements.txt.
      • On Windows: Run py -m pip install -r requirements.txt.
      • On Unix/MacOS: Run python3 -m pip install -r requirements.txt.

Running the project

  • Open the project in an editor. (e.g. VS code)
  • Run the project in the editor. (Project runs on the virtual environment and activating the virtual environment will change shell’s prompt to show what virtual environment is being used)
  • Go down to meta_tool directory in command line or terminal. (cd meta_tool)
  • To run the project use subcommand runserver.
    • On Windows: Run py manage.py runserver.
    • On Unix/MacOS: Run python3 manage.py runserver.
  • To see the output on the browser follow the link shown in the terminal. (e.g. http://127.0.0.1:8000/)

Tip for developers

If the page does not refresh correctly, clear the browser cache. You can force Chrome to pull in new data and ignore the saved ("cached") data by using the keyboard shortcut Cmd+Shift+R on Mac, and Ctrl+F5 or Ctrl+Shift+R on Windows.

Setting Up GitLab/GitHub Personal Token

To enhance the functionality of this program and ensure secure interactions with the GitLab/GitHub API, users are required to provide their personal access token. Follow these steps to integrate your token:

Collaboration

We believe in the power of collaboration and welcome contributions from the community to enhance the SMECS workflow. Whether you have found a bug, have a feature idea, or want to share feedback, your contribution matters. Feel free to submit a pull request, open up an issue, or reach out with any questions or concerns.

To see upcoming features, please refer to our open issues.

License and Citation

The code is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
See LICENSE.txt for further information.

Acknowledgements

We would like to thank meta_tool for providing the foundational framework upon which this project is built.