Skip to content

Commit

Permalink
Initial version (#1)
Browse files Browse the repository at this point in the history
* initial

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

Co-authored-by: isti-xander <[email protected]>
  • Loading branch information
isti-xander and isti-xander authored Oct 5, 2021
1 parent aa2d3d2 commit c0993cc
Show file tree
Hide file tree
Showing 7,663 changed files with 3,315,966 additions and 130 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
80 changes: 80 additions & 0 deletions .github/workflows/yasmine.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Yasmine
on: [ push ]
jobs:
lint_python:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.6
uses: actions/setup-python@v2
with:
python-version: '3.6.x'
- run: pip install pep8
- run: pep8 backend/yasmine

build_app:
runs-on: ubuntu-latest
container: ghcr.io/iris-edu/yasmine-stationxml-editor/yasmine-utils:latest
steps:
- uses: actions/checkout@v2
- name: Add CI_COMMIT_SHORT_SHA env property with commit short sha
run: echo "CI_COMMIT_SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV
- name: Get the version
id: get_version
run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3)
- name: Get TIMESTAMP
id: date
run: echo "::set-output name=date::$(date --utc --rfc-2822)"
- name: Build application
env:
VERSION_FILE: "yasmine/static/js/yasmine/classic/app.js"
CI_JOB_TIMESTAMP: "${{ steps.date.outputs.date }}"
CI_COMMIT_TAG: "${{ steps.get_version.outputs.VERSION }}"
run: |
cd frontend
sencha app build
cd ../backend
echo "$(echo var releaseVersion=\"$CI_COMMIT_TAG\" | cat - $VERSION_FILE)" > $VERSION_FILE
echo "$(echo var buildTimestamp=\"$CI_JOB_TIMESTAMP\" | cat - $VERSION_FILE)" > $VERSION_FILE
echo "$(echo var commitRevision=\"$CI_COMMIT_SHORT_SHA\" | cat - $VERSION_FILE)" > $VERSION_FILE
python3.6 setup.py sdist
- uses: actions/upload-artifact@v2
with:
name: yasmine-artifact
path: backend/dist/*.gz

test_app:
runs-on: ubuntu-latest
container: ghcr.io/iris-edu/yasmine-stationxml-editor/yasmine-utils:latest
needs: [build_app]
steps:
- uses: actions/download-artifact@v2
with:
name: yasmine-artifact
- name: Install and Run Yasmine tests
run: |
sudo pip3.6 install numpy
sudo pip3.6 install YASMINE-1.0.tar.gz
yasmineapp.py syncdb upgrade heads
yasmineapp.py runserver &>/dev/null&
sleep 10
yasmineapp.py test
# docker:
# runs-on: ubuntu-latest
# permissions:
# contents: read
# packages: write
# steps:
# - name: Check Out Repo
# uses: actions/checkout@v2
#
# - name: Log in to registry
# run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
#
# - name: Build image
# run: docker build . --file docker-gitlab-centos7 --tag ghcr.io/iris-edu/yasmine-stationxml-editor/yasmine-utils:latest
#
# - name: Push image
# run: docker push ghcr.io/iris-edu/yasmine-stationxml-editor/yasmine-utils:latest
134 changes: 5 additions & 129 deletions .gitignore
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,129 +1,5 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
.settings
.vscode/
.DS_Store
/.gradle/
/.idea/
6 changes: 6 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Yasmine v2.1.0, 2019/12/06

- 1. Extract specific elements from a stationXML file to populate the user libraries
- 2. Use of a user-defined instrument atomic library
- 3. Use of user-defined objects libraries (comments, geology, vault, units ....)
- 11. Environment setup
27 changes: 26 additions & 1 deletion README.md
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1 +1,26 @@
# yasmine-stationxml-editor
# YASMINE

YASMINE (instrumentation metadata construction tool) is a python web application developed to generate metadata XML for a seismic stations.

## Requirements

1. Installed Python 3.6.5+
2. Related python packages will be installed automatically by pip

## Instructions to install (under super user rights)

1. Install a source distribution package ``pip install YASMINE-x.x.tar.gz``
2. Update database ``python yasmineapp.py syncdb upgrade heads``
3. If there is no internet connection unzip NRL (IRIS.zip) in to the application data folder "/opt/YASMINE/_media/" or "c:/YASMINE/_media/nrl/" depending on OS (Linux/Windows based).
4. Start application ``python yasmineapp.py runserver``

## Instructions to run using Docker

1. Install Docker <https://www.docker.com/products/docker-desktop>
2. Run `docker-compose up` to download, build and deploy docker container
3. Open browser and type `http://localhost:1841`

## Instructions to develop

1. To develop frontend, please go to `frontend` folder and see `README.md` file
2. To develop backend, please go to `backend` folder and see `README.md` file
Binary file added Yasmine-Documentations-3.0.1.docx
Binary file not shown.
16 changes: 16 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
*.pyc
dist
*.egg-info
.settings
.idea
geckodriver.log
build
/ghostdriver.log
/.pydevproject
.vscode/*
/debug.log
*ghostdriver.log
*debug.log
/yasmine/static/js/yasmine/
/yasmine/app/tests/integration/out/
/venv/
53 changes: 53 additions & 0 deletions backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# ****************************************************************************
#
# This file is part of the yasmine editing tool.
#
# yasmine (Yet Another Station Metadata INformation Editor), a tool to
# create and edit station metadata information in FDSN stationXML format,
# is a common development of IRIS and RESIF.
# Development and addition of new features is shared and agreed between * IRIS and RESIF.
#
#
# Version 1.0 of the software was funded by SAGE, a major facility fully
# funded by the National Science Foundation (EAR-1261681-SAGE),
# development done by ISTI and led by IRIS Data Services.
# Version 2.0 of the software was funded by CNRS and development led by * RESIF.
#
# This program is free software; you can redistribute it
# and/or modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version. *
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License (GNU-LGPL) for more details. *
# You should have received a copy of the GNU Lesser General Public
# License along with this software. If not, see
# <https://www.gnu.org/licenses/>
#
#
# 2019/10/07 : version 2.0.0 initial commit
#
# ****************************************************************************/

FROM python:3.6.5-slim
ADD . /opt/YASMINE/src
WORKDIR /opt/YASMINE/src

RUN apt-get update && apt-get install -y wget unzip gnupg

RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt-get update
RUN apt-get -y install google-chrome-stable

RUN cd /tmp && \
wget https://chromedriver.storage.googleapis.com/2.39/chromedriver_linux64.zip -O chromedriver.zip --progress=bar:force && \
mkdir /opt/chromedriver && unzip -q -p chromedriver.zip > /opt/chromedriver/chromedriver && \
ln -s /opt/chromedriver/chromedriver /usr/local/bin/chromedriver && \
rm chromedriver.zip && \
chmod +x /opt/chromedriver/chromedriver

RUN pip install -r requirements.txt
CMD python yasmineapp.py syncdb upgrade heads ; python yasmineapp.py runserver --debug

10 changes: 10 additions & 0 deletions backend/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
include README.rst
include requirements.txt
recursive-include yasmine/static *
recursive-include yasmine/templates *
recursive-include yasmine/resources *
recursive-include yasmine/app/tests/integration/data *
recursive-include yasmine/app/tests/unit/data *
recursive-include yasmine *.ini
recursive-include yasmine/alembic *
recursive-include yasmine/tests *
35 changes: 35 additions & 0 deletions backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# YASMINE Backend
If GUI is required to be used, please see `../frontend/README.md` before using backend

## For Users
### Using locally installed Python
1. Install Python 3.6.5+
2. Install numpy>=1.6.1
3. Run `pip install -r requirements.txt` to install dependencies
4. Run `python yasmineapp.py syncdb upgrade heads` to migrate database
5. Start application `python yasmineapp.py runserver`

### Using Docker
1. Install Docker <https://www.docker.com/products/docker-desktop>
2. Build Docker image: `docker build -t yasmine/backend .`
3. Run Docker image: `docker run --rm -p 80:80 yasmine/backend`
4. Go to GUI url: <http://localhost>
5. Go to REST API endpoint: <http://localhost/api/>

## For Developers
### Using locally installed Python
1. Install Python 3.6.5+
2. Install numpy>=1.6.1
3. (optional) Selenium FireFox driver <https://github.com/mozilla/geckodriver/releases> should be added to the system path
4. Run `pip install -r requirements.txt` to install dependencies
5. (optional) Run `python yasmineapp.py syncdb revision --autogenerate` to create migration script
6. Run `python yasmineapp.py syncdb upgrade heads` to migrate database
7. (optional) Run `python yasmineapp.py test` to run tests
8. Start application `python yasmineapp.py runserver`

### Using Docker
1. Install Docker <https://www.docker.com/products/docker-desktop>
2. Build Docker image: `docker build -t yasmine/backend .`
3. Run Docker image: `docker run --rm -p 80:80 yasmine/backend`
4. Go to GUI url: <http://localhost>
5. Go to REST API endpoint: <http://localhost/api/>
Loading

0 comments on commit c0993cc

Please sign in to comment.