Coder Social home page Coder Social logo

carp's Introduction

  CaRP-Assigner   CodeQL drawing

Allgemeines

Der „Course and Research Paper Assinger“ (Kurs und Facharbeit Zuweiser = KuFa-Zuweiser) ist ein Programm zum Zuweisen von Schülern nach Wunschkursen, z.B. Sportkurse oder Facharbeiten, die nach einer Priorität geordnet sind. Dabei wird versucht eine Zuweisung zu erstellen, welche einer Verteilung mit der bestmöglichen Priorität entspricht und dabei das Limit eines jeden Kurses nicht überschreitet.

Dieses Programm wurde im Rahmen einer besonderen Lernleistung für die Luisenschule Mülheim an der Ruhr im Abschlussjahr 2019 / 2020 entwickelt.

Installation und Benutzung

Windows

Sollten Sie ein Windows-System benutzen, so liegen im aktuellen Release spezielle Installationsdateien bereit. Diese können Sie herunterladen und dann den CaRP-Assigner installieren. Außerdem steht auch noch eine Image-Datei als Zip-Archiv zur Installation zur Verfügung.

Linux - Debian

Sollten Sie Linux benutzen, so finden Sie für debianbasierte Systeme ein Image als Zip-Datei.

Andere Systeme

Für alle weiteren Betriebssysteme können Sie einfach die im Release angehängte Jar-Datei ausführen. Dazu laden Sie sich zunächst Java, als auch JavaFX herunter. Dann laden Sie sich die Jar-Datei herunter und ziehen diese in den von Ihnen gewünschten Ordner. Hier führen Sie nun folgenden Befehl aus:

java -jar --module-path "PATH_TO_JAVAFX" --add-modules javafx.controls,javafx.fxml,javafx.base,javafx.media,javafx.graphics,javafx.swing JAR-DATEI

Dabei ersetzen Sie PATH_TO_JAVAFX mit dem lib-Verzeichnis ihrer JavaFX-Installation und JAR-DATEI mit der CaRP-Assigner-Datei, die Sie ausführen möchten.

carp's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

carp's Issues

Failing to import files with paths that contain upper-case characters on systems with case-sensitive filenames (i.e. GNU/Linux)

Describe the bug
Failing to import files with paths that contain upper-case characters on systems with case-sensitive filenames (i.e. GNU/Linux).
There is no visible error in the GUI, however exception info is output to stderr (see "Log" section).

To Reproduce
Steps to reproduce the behavior (GNU/Linux):

  1. Go to 'In-Out-Settings'
  2. Drag-and-Drop a file with a path containing upper-case letters into the "Input File" box (or use the search button)

Log

[00:00:00] [SEVERE] [Thread-8:ExcelImporter:getInput] [Wahlverteiler] 
java.io.FileNotFoundException: /home/user/downloads/carp.xlsx (Datei oder Verzeichnis nicht gefunden)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at de.juhu.dateimanager.ExcelImporter.getInput(ExcelImporter.java:246)
    at de.juhu.dateimanager.ExcelImporter.readXLSXImproved(ExcelImporter.java:191)
    at de.juhu.distributor.Distributor.importFile(Distributor.java:1079)
    at de.juhu.distributor.Distributor.readFile(Distributor.java:1044)
    at de.juhu.distributor.Distributor.<init>(Distributor.java:170)
    at de.juhu.guiFX.GUIManager.lambda$onDragDroppedInput$0(GUIManager.java:646)
    at java.lang.Thread.run(Thread.java:748)
Exception in thread "Thread-8" java.lang.NullPointerException
        at org.apache.poi.poifs.filesystem.FileMagic.prepareToCheckMagic(FileMagic.java:184)
        at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:174)
        at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:104)
        at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:301)
        at org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:37)
        at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:303)
        at de.juhu.dateimanager.ExcelImporter.readXLSXImproved(ExcelImporter.java:195)
        at de.juhu.distributor.Distributor.importFile(Distributor.java:1079)
        at de.juhu.distributor.Distributor.readFile(Distributor.java:1044)
        at de.juhu.distributor.Distributor.<init>(Distributor.java:170)
        at de.juhu.guiFX.GUIManager.lambda$onDragDroppedInput$0(GUIManager.java:646)
        at java.lang.Thread.run(Thread.java:748)

Desktop (please complete the following information):

  • OS: GNU/Linux

Additional context
The cause of the problem is that the input path unnecessarily gets converted to lower-case in the Distributor's importFile(String) method:

path = path.toLowerCase();

This works fine for systems where the lower-case path always represents the same file as the original path (although not even that can be guaranteed), but obviously results in a "file not found" error on systems with case-sensitive paths, i.e. Linux.

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.