Skip to content

Commit

Permalink
Update to CSV Table Schema 0.0.3 + renaming from global.csvts to mani…
Browse files Browse the repository at this point in the history
…fest.csvts
  • Loading branch information
fstueber committed Jun 16, 2022
1 parent 08f4301 commit 468a2ad
Show file tree
Hide file tree
Showing 31 changed files with 118 additions and 61 deletions.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2021 STÜBER SYSTEMS
Copyright (c) 2022 STÜBER SYSTEMS

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
100 changes: 53 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,73 +2,79 @@

Das ENBREA CSV Format (kurz ECF-Format) dient zum Importieren von Daten nach ENBREA und zum Exportieren von Daten aus ENBREA. Auch andere Anwendungen wie z.B. DAVINCI und MAGELLAN unterstützen das ECF-Format.

Das ECF-Format umfasst einen standardisierte Menge von CSV-Dateien, die mit Hilfe von [Simple CSV Schema](https://github.com/simple-csv-schema/simple-csv-schema.spec) formal spezifiziert sind.
Das ECF-Format umfasst einen standardisierte Menge von CSV-Dateien, die mit Hilfe von [CSV Table Schema](https://github.com/csv-table-schema/csv-table-schema.spec) formal spezifiziert sind.

## Dokumentation

### Liste der ECF-Dateien

Die Liste aller Schema-Dateien [findest Du hier](src).

#### Manifest

Dateiname | Inhalt | Spezifikation
--------------------------------- | ------------------------------- | -------------
Manifest.csv | Globale Daten | [CSV-Schema](src/ecf-manifest.csvts.json)

#### Schlüsselverzeichnisse

Dateiname | Inhalt | Spezifikation
--------------------------------- | ------------------------------- | -------------
Countries.csv | Staaten | [CSV-Schema](src/ecf-countries.scsv.json)
CourseCategories.csv | Kurskategorien | [CSV-Schema](src/ecf-catalog.scsv.json)
CourseFlags.csv | Kursmerkmale | [CSV-Schema](src/ecf-catalog.scsv.json)
CourseTypes.csv | Kursarten | [CSV-Schema](src/ecf-catalog.scsv.json)
Languages.csv | Sprachen | [CSV-Schema](src/ecf-languages.scsv.json)
MaritalStatuses.csv | Ehestände | [CSV-Schema](src/ecf-catalog.scsv.json)
Nationalities.csv | Nationalitäten | [CSV-Schema](src/ecf-nationalities.scsv.json)
Religions.csv | Religionszugehörigkeiten | [CSV-Schema](src/ecf-catalog.scsv.json)
RoomAbsenceReasons.csv | Raumausfallgründe | [CSV-Schema](src/ecf-catalog.scsv.json)
RoomAbsenceStatuses.csv | Raumausfallstatus | [CSV-Schema](src/ecf-catalog.scsv.json)
SchoolClassAbsenceReasons.csv | Klassenabwesenheitsgründe | [CSV-Schema](src/ecf-catalog.scsv.json)
SchoolClassCategories.csv | Klassenkategorien | [CSV-Schema](src/ecf-catalog.scsv.json)
SchoolClassLevels.csv | Klassenstufen | [CSV-Schema](src/ecf-catalog.scsv.json)
SchoolClassProfiles.csv | Klassenprofile | [CSV-Schema](src/ecf-catalog.scsv.json)
SchoolClassTypes.csv | Klassenarten | [CSV-Schema](src/ecf-catalog.scsv.json)
SchoolOrganisations.csv | Schulorganisationen | [CSV-Schema](src/ecf-catalog.scsv.json)
SchoolProfiles.csv | Schulprofile | [CSV-Schema](src/ecf-catalog.scsv.json)
SchoolTypes.csv | Schularten | [CSV-Schema](src/ecf-catalog.scsv.json)
SubjectFocuses.csv | Fachschwerpunkte | [CSV-Schema](src/ecf-catalog.scsv.json)
SubjectCategories.csv | Fachkategorien | [CSV-Schema](src/ecf-subject-categories.scsv.json)
SubjectGroups.csv | Fachgruppen | [CSV-Schema](src/ecf-catalog.scsv.json)
SubjectTypes.csv | Facharten | [CSV-Schema](src/ecf-catalog.scsv.json)
TeacherAbsenceReasons.csv | Lehrerabwesenheitsgründen | [CSV-Schema](src/ecf-catalog.scsv.json)
Countries.csv | Staaten | [CSV-Schema](src/ecf-countries.csvts.json)
CourseCategories.csv | Kurskategorien | [CSV-Schema](src/ecf-catalog.csvts.json)
CourseFlags.csv | Kursmerkmale | [CSV-Schema](src/ecf-catalog.csvts.json)
CourseTypes.csv | Kursarten | [CSV-Schema](src/ecf-catalog.csvts.json)
Languages.csv | Sprachen | [CSV-Schema](src/ecf-languages.csvts.json)
MaritalStatuses.csv | Ehestände | [CSV-Schema](src/ecf-catalog.csvts.json)
Nationalities.csv | Nationalitäten | [CSV-Schema](src/ecf-nationalities.csvts.json)
Religions.csv | Religionszugehörigkeiten | [CSV-Schema](src/ecf-catalog.csvts.json)
RoomAbsenceReasons.csv | Raumausfallgründe | [CSV-Schema](src/ecf-catalog.csvts.json)
RoomAbsenceStatuses.csv | Raumausfallstatus | [CSV-Schema](src/ecf-catalog.csvts.json)
SchoolClassAbsenceReasons.csv | Klassenabwesenheitsgründe | [CSV-Schema](src/ecf-catalog.csvts.json)
SchoolClassCategories.csv | Klassenkategorien | [CSV-Schema](src/ecf-catalog.csvts.json)
SchoolClassLevels.csv | Klassenstufen | [CSV-Schema](src/ecf-catalog.csvts.json)
SchoolClassProfiles.csv | Klassenprofile | [CSV-Schema](src/ecf-catalog.csvts.json)
SchoolClassTypes.csv | Klassenarten | [CSV-Schema](src/ecf-catalog.csvts.json)
SchoolOrganisations.csv | Schulorganisationen | [CSV-Schema](src/ecf-catalog.csvts.json)
SchoolProfiles.csv | Schulprofile | [CSV-Schema](src/ecf-catalog.csvts.json)
SchoolTypes.csv | Schularten | [CSV-Schema](src/ecf-catalog.csvts.json)
SubjectFocuses.csv | Fachschwerpunkte | [CSV-Schema](src/ecf-catalog.csvts.json)
SubjectCategories.csv | Fachkategorien | [CSV-Schema](src/ecf-subject-categories.csvts.json)
SubjectGroups.csv | Fachgruppen | [CSV-Schema](src/ecf-catalog.csvts.json)
SubjectTypes.csv | Facharten | [CSV-Schema](src/ecf-catalog.csvts.json)
TeacherAbsenceReasons.csv | Lehrerabwesenheitsgründen | [CSV-Schema](src/ecf-catalog.csvts.json)

#### Schuldaten

Dateiname | Inhalt | Spezifikation
--------------------------------- | ------------------------------- | -------------
Announcements.csv | Mitteilungen | [CSV-Schema](src/ecf-announcements.scsv.json)
Courses.csv | Kurse | [CSV-Schema](src/ecf-courses.scsv.json)
Departments.csv | Abteilungen | [CSV-Schema](src/ecf-departments.scsv.json)
LessonGaps.csv | Fehlstellen | [CSV-Schema](src/ecf-lesson-gaps.scsv.json)
RoomAbsences.csv | Raumausfälle | [CSV-Schema](src/ecf-room-absences.scsv.json)
Rooms.csv | Räume | [CSV-Schema](src/ecf-rooms.scsv.json)
ScheduledLessons.csv | Verplanter Unterricht | [CSV-Schema](src/ecf-scheduled-lessons.scsv.json)
SchoolClassAbsences.csv | Klassenabwesenheiten | [CSV-Schema](src/ecf-schoolclass-absences.scsv.json)
SchoolClasses.csv | Klassen | [CSV-Schema](src/ecf-schoolclasses.scsv.json)
StudentCourseAttendances.csv | Schüler-Kursteilnahmen | [CSV-Schema](src/ecf-student-course-attendances.scsv.json)
StudentForeignLangusges.csv | Schüler-Fremdsprachenfolge | [CSV-Schema](src/ecf-student-foreign-languages.scsv.json)
StudentSchoolClassAttendances.csv | Schüler-Klassenteilnahmen | [CSV-Schema](src/ecf-student-schoolclass-attendances.scsv.json)
StudentSubjects.csv | Schüler-Fachdaten | [CSV-Schema](src/ecf-student-subjects.scsv.json)
Students.csv | Schüler | [CSV-Schema](src/ecf-students.scsv.json)
Subjects.csv | Fächer | [CSV-Schema](src/ecf-subjects.scsv.json)
SubstituteLessons.csv | Vertretungsunterricht | [CSV-Schema](src/ecf-substitute-lessons.scsv.json)
TeacherAbsences.csv | Lehrer-Abwesenheiten | [CSV-Schema](src/ecf-teacher-absences.scsv.json)
TeacherCourseAttendances.csv | Lehrer-Kursteilnahmen | [CSV-Schema](src/ecf-teacher-course-attendances.scsv.json)
Teachers.csv | Lehrer | [CSV-Schema](src/ecf-teachers.scsv.json)
TimeFrames.csv | Zeitrahmen | [CSV-Schema](src/ecf-timeframes.scsv.json)
Vacations.csv | Ferien | [CSV-Schema](src/ecf-vacations.scsv.json)
Announcements.csv | Mitteilungen | [CSV-Schema](src/ecf-announcements.csvts.json)
Courses.csv | Kurse | [CSV-Schema](src/ecf-courses.csvts.json)
Departments.csv | Abteilungen | [CSV-Schema](src/ecf-departments.csvts.json)
LessonGaps.csv | Fehlstellen | [CSV-Schema](src/ecf-lesson-gaps.csvts.json)
RoomAbsences.csv | Raumausfälle | [CSV-Schema](src/ecf-room-absences.csvts.json)
Rooms.csv | Räume | [CSV-Schema](src/ecf-rooms.csvts.json)
ScheduledLessons.csv | Verplanter Unterricht | [CSV-Schema](src/ecf-scheduled-lessons.csvts.json)
SchoolClassAbsences.csv | Klassenabwesenheiten | [CSV-Schema](src/ecf-schoolclass-absences.csvts.json)
SchoolClasses.csv | Klassen | [CSV-Schema](src/ecf-schoolclasses.csvts.json)
StudentCourseAttendances.csv | Schüler-Kursteilnahmen | [CSV-Schema](src/ecf-student-course-attendances.csvts.json)
StudentForeignLangusges.csv | Schüler-Fremdsprachenfolge | [CSV-Schema](src/ecf-student-foreign-languages.csvts.json)
StudentSchoolClassAttendances.csv | Schüler-Klassenteilnahmen | [CSV-Schema](src/ecf-student-schoolclass-attendances.csvts.json)
StudentSubjects.csv | Schüler-Fachdaten | [CSV-Schema](src/ecf-student-subjects.csvts.json)
Students.csv | Schüler | [CSV-Schema](src/ecf-students.csvts.json)
Subjects.csv | Fächer | [CSV-Schema](src/ecf-subjects.csvts.json)
SubstituteLessons.csv | Vertretungsunterricht | [CSV-Schema](src/ecf-substitute-lessons.csvts.json)
TeacherAbsences.csv | Lehrer-Abwesenheiten | [CSV-Schema](src/ecf-teacher-absences.csvts.json)
TeacherCourseAttendances.csv | Lehrer-Kursteilnahmen | [CSV-Schema](src/ecf-teacher-course-attendances.csvts.json)
Teachers.csv | Lehrer | [CSV-Schema](src/ecf-teachers.csvts.json)
TimeFrames.csv | Zeitrahmen | [CSV-Schema](src/ecf-timeframes.csvts.json)
Vacations.csv | Ferien | [CSV-Schema](src/ecf-vacations.csvts.json)

### Konzepte

#### CSV-Schema

ECF ist mit Hilfe von [Simple CSV Schema](https://github.com/simple-csv-schema/simple-csv-schema.spec) formal spezifiziert.
ECF ist mit Hilfe von [CSV Table Schema](https://github.com/csv-table-schema/csv-table-schema.spec) formal spezifiziert.

Vorteile:

Expand All @@ -90,7 +96,7 @@ Id;Code;Name;DepartmentIdList

Das Feld `DepartmentIdList` ist hier als JSON-Array mit zwei Id-Einträgen formatiert.

[Simple CSV Schema](https://github.com/simple-csv-schema/simple-csv-schema.spec) unterstützt [JSON-Schema](https://json-schema.org/) als Unterschema, so dass einer vollständigen Validierung von ECF nichts im Wege steht.
[CSV Table Schema](https://github.com/csv-table-schema/csv-table-schema.spec) unterstützt [JSON-Schema](https://json-schema.org/) als Unterschema, so dass einer vollständigen Validierung von ECF nichts im Wege steht.

## Kann ich mithelfen?

Expand Down
2 changes: 1 addition & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
pool:
vmImage: 'windows-2019'
vmImage: 'windows-2022'

variables:
- group: 'github-config'
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 6 additions & 2 deletions src/ecf-courses.scsv.json → src/ecf-courses.csvts.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@
{
"name": "StartDate",
"description": "Start des Kurses im Semester",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand All @@ -23,8 +25,10 @@
{
"name": "EndDate",
"description": "Ende des Kurses im Semester",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
31 changes: 31 additions & 0 deletions src/ecf-manifest.csvts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"title": "Manifest",
"description": "ECF-Schema für globale Einstellungen",
"dictionary": {
"name": "manifest.csv",
"keys": [
{
"name": "schedule.ValidFrom",
"description": "Startzeitpunkt des Planungszeitraums",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true
},
{
"name": "schedule.ValidTo",
"description": "Endzeitpunkt des Planungszeitraums",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true
}
]
}
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@
{
"name": "EntryDate",
"description": "Start der Kursteilnahme",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand All @@ -28,8 +30,10 @@
{
"name": "ExitDate",
"description": "Ende der Kursteilnahme",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@
{
"name": "EntryDate",
"description": "Start der Klassenteilnahme",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand All @@ -28,8 +30,10 @@
{
"name": "ExitDate",
"description": "Ende der Klassenteilnahme",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,10 @@
{
"name": "EntryDate",
"description": "Start der Kursteilnahme",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand All @@ -47,8 +49,10 @@
{
"name": "ExitDate",
"description": "Ende der Kursteilnahme",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@
{
"name": "EntryDate",
"description": "Start der Kursteilnahme",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand All @@ -28,8 +30,10 @@
{
"name": "ExitDate",
"description": "Ende der Kursteilnahme",
"type": "date",
"type": "date-time",
"formats": [
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd"
],
"optional": true,
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions src/json-temporal-expression-array.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,12 @@
},
"ValidFrom": {
"type": "string",
"format": "date",
"format": "date-time",
"description": "Startdatum der Gültigkeit des zeitlichen Ausdrucks."
},
"ValidTo": {
"type": "string",
"format": "date",
"format": "date-time",
"description": "Enddatum der Gültigkeit des zeitlichen Ausdrucks."
},
"DaysOfWeek": {
Expand Down

0 comments on commit 468a2ad

Please sign in to comment.