Giter Site home page Giter Site logo

softlab4's Introduction

Stories in Ready Build Status Build Status

Softlab4

Project Site | Wiki | Issue Tracker | Coding Style | Contribution Guidelines

This is the main page of the Software Laboratory IV. 2014/15 2nd semester project. The original task description can be found on the following website (in Hungarian): Szoftver labor 4. It is aimed at systems that are supported by the Java version 6 or higher. It is licensed under the GNU Lesser Lesser Public License, version 3 (LGPLv3) and belongs to the finalize team.

System Requirements

  • Operating System
    • Any operating system that are supported by the Java Runtime Environment
    • It has been tested on: Linux, Microsoft Windows and Mac OS X
  • Hardware
    • System requirements for the different Java versions can be found here: Java Requirements

Building the project

Building the Java code

The project uses the Gradle build system to build the main software and LaTeX to build the documentation. A binary distribution of Gradle is downloaded on the first build, so a working internet connection is required. It is required for javac to be located in the PATH enviromental variable or the JAVA_HOME enviromental variable to be set.

The build is done with the platform specific Gradle Wrapper script:

On Windows: .\gradlew.bat <build command>

On Linux and OS X: ./gradlew <build command>

Where <build command> is one of the following:

Command Description Output
build builds the whole project, including tests jar files in build/libs
test runs the unit tests none, if project already built
run runs the main executable none, if project already built
install generates a cross platform distribution uncompressed under build/install/softlab4
distZip generates a cross platform distribution zipped under build/distributions/softlab4.zip
distTar generates a cross platform distribution tar'd under build/distributions/softlab4.tar

Building the documentation

The documentation generation is handled with a platform independent Python build script:

All platforms: build_docs.py <build command>

Where <build command> is one of the following:

Command Description Output
file-list generates a LaTeX formatted list of the Java sources docs/includes/file_list.tex
javadoc builds the JavaDoc documentation docs/javadoc/javadoc.tex
pdf generates the readable pdf documentation docs/szoftlab4.pdf
svg converts svg to pdf if necessary generated pdf files in docs/
all runs all of the above to generate an up-to-date documentation docs/szoftlab4.pdf

If called without arguments, the all command will be used.

It's also possible to declare custom documentation build commands: this can be done by adding entries to the build_docs.json file located in the project root. The key in each entry will correspond to the command name, while the list contains the command components that should be run for that specific command (in order).

Dependencies for building the documentation:

Windows:

  • a working 'LaTeX' distribution with pdflatex in PATH
  • a Python 2 or 3 installation with python.exe in PATH
  • an svg to pdf converter in PATH:
  • rsvg-convert
  • Inkscape
  • ImageMagick

Linux:

Dependency Ubuntu packages Arch Linux packages
LaTeX texlive-latex-base texlive-bin
texlive-latex-recommended texlive-latex-core
texlive-latex-extra texlive-latexextra
texlive-font-recommended
Python python or python3 python or python2
svg to pdf converter librsvg2-bin or inkscape or imagemagick librsvg or inkscape or imagemagick

Folder structure

Folder Contents
docs files required for the documentation generation
gradle build system specific files that make it possible to build the project
lib 3rd party libraries and helper scripts
lib/scripts/commands command components used for documentation generation
src/main source code for the main project
src/test the JUnit unit tests

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.