Giter Site home page Giter Site logo

mohammedali-anis / plattform_vaks_siegen Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 21.33 MB

Diese Arbeit befasst sich mit der Konzipierung, Implementierung und dem Design einer Web-Applikation mit dem Ziel, den Arbeitsprozess einer sozialen Organisation zu digitalisieren und damit zu erleichtern und besser zu organisieren. Im Fokus stand die Erfüllung der Anforderungen des VAKS Vereins in Siegen.

License: GNU General Public License v3.0

Java 46.32% HTML 50.37% JavaScript 1.56% CSS 1.75%
spring-boot sqlite google-calendar-api dialogflow html css javascript chatbot digitalsation digitalization

plattform_vaks_siegen's Introduction

Plattform für Verein für soziale Arbeit und Kultur in Siegen

Konzeptionierung und Entwicklung einer Web-Applikation zur Digitalisierung der Arbeitsprozesse einer sozialen Organisation

Bachelorarbeit

Das Projekt wurde als Bachelorarbeit an der Universität Siegen etabliert und präsentiert und wurde von AR Dr.-Ing. Andreas Hoffmann betreut.

Diese Arbeit befasst sich mit der Konzipierung, Implementierung und dem Design einer Web-Applikation mit dem Ziel, den Arbeitsprozess einer sozialen Organisation zu digitalisieren und damit zu erleichtern und besser zu organisieren. Hierzu wird das Spring Framework in Verbindung mit HTML, CSS, JavaScript, Datenbank SQlite und verschiedene API verwenden. Dieses Projekt kann als Vorlage für die meisten sozialen Organisationen verwendet werden, aber im Fokus stand die Erfüllung der Anforderungen der Arbeitsprozesse des Vereins für Soziale Arbeit und Kultur Südwestfalen VAKS in Siegen.

Built with :

  • Java Spring Boot
    • Das Spring Boot Framework (kurz Spring) ist ein quelloffenes Framework für die Java-Plattform, welches oft für Web-Anwendungen verwendet wird. Ziel des Spring Frameworks ist es, die Entwicklung mit Java/Java EE zu vereinfachen und gute Programmierpraktiken zu fördern. Spring bietet mit einem breiten Spektrum an Funktionalität eine ganzheitliche Lösung zur Entwicklung von Anwendungen und deren Geschäftslogiken; dabei steht die Entkopplung der Applikationskomponenten im Vordergrund.
  • Google Calendar API
    • Die Google Kalender-API ist eine RESTful-API, auf die über explizite HTTP-Aufrufe oder über die Google-Clientbibliotheken zugegriffen werden kann. Die API stellt die meisten der in der Google Kalender-Weboberfläche verfügbaren Funktionen bereit.
  • Google Dialog Flow
    • Dialogflow ist eine Plattform zum Verstehen natürlicher Sprache, die zum Entwerfen und Integrieren einer dialogorientierten Benutzeroberfläche in mobile Apps, Webanwendungen, Geräte, Bots, interaktive Sprachantwortsysteme und verwandte Anwendungen verwendet wird.
  • SQLite
    • SQLite ist eine gemeinfreie Programmbibliothek, die ein relationales Datenbanksystem enthält. SQLite wird in Mobiltelefonen (Android, iOS, Symbian OS, Windows Phone), in Browsern (Firefox, Safari, Chrome), Skype und vielen anderen Anwendungen eingesetzt. Es ist das verbreitetste und meistverwendete Datenbanksystem der Welt. SQLite unterstützt einen Großteil der im SQL-92-Standard festgelegten SQL-Sprachbefehle. Unter anderem implementiert SQLite Transaktionen, Unterabfragen (Subselects), Sichten (Views), Trigger und benutzerdefinierte Funktionen.
  • JavaScript
  • HTML 5
  • CSS

Anforderungsanalyse :

  • Digitalisierung aller Dokumenten
  • Hochladen der Dokumente Online
  • Elektronischer Kalender
  • Online Terminbuchungssystem
  • Statistiken des Vereins
  • Chatbot

Database :

Hier ist die SQL-Datei zum Erstellen der Datenbank

BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "Mother_Language" (
	"language_id"	INTEGER NOT NULL UNIQUE,
	"language"	varchar,
	PRIMARY KEY("language_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "User_Mother_Language" (
	"user_id"	INTEGER,
	"language_id"	INTEGER,
	FOREIGN KEY("user_id") REFERENCES "User"("user_id"),
	FOREIGN KEY("language_id") REFERENCES "Mother_Language"("language_id")
);
CREATE TABLE IF NOT EXISTS "Address" (
	"address_id"	INTEGER NOT NULL UNIQUE,
	"street"	varchar,
	"number"	varchar,
	"city"	varchar,
	"post_code"	INTEGER,
	PRIMARY KEY("address_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "User_Address" (
	"user_id"	INTEGER,
	"address_id"	INTEGER,
	FOREIGN KEY("user_id") REFERENCES "User"("user_id"),
	FOREIGN KEY("address_id") REFERENCES "Address"("address_id")
);
CREATE TABLE IF NOT EXISTS "User_Residence_Permit" (
	"user_id"	INTEGER,
	"residence_permit_id"	INTEGER,
	FOREIGN KEY("residence_permit_id") REFERENCES "Residence_Permit"("residence_permit_id"),
	FOREIGN KEY("user_id") REFERENCES "User"("user_id")
);
CREATE TABLE IF NOT EXISTS "Role" (
	"role_id"	INTEGER,
	"role_type"	varchar,
	PRIMARY KEY("role_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "User_Role" (
	"user_id"	INTEGER,
	"role_id"	INTEGER,
	FOREIGN KEY("user_id") REFERENCES "User"("user_id"),
	FOREIGN KEY("role_id") REFERENCES "Role"("role_id")
);
CREATE TABLE IF NOT EXISTS "User_Education" (
	"user_id"	INTEGER,
	"education_id"	INTEGER,
	FOREIGN KEY("user_id") REFERENCES "User"("user_id"),
	FOREIGN KEY("education_id") REFERENCES "Education"("education_id")
);
CREATE TABLE IF NOT EXISTS "Document_Type" (
	"document_id"	INTEGER,
	"type_id"	INTEGER,
	FOREIGN KEY("type_id") REFERENCES "Type"("type_id"),
	FOREIGN KEY("document_id") REFERENCES "Document"("document_id")
);
CREATE TABLE IF NOT EXISTS "Kunde_Supervised_By_Worker" (
	"kunde_id"	INTEGER,
	"worker_id"	INTEGER,
	FOREIGN KEY("worker_id") REFERENCES "User"("user_id"),
	FOREIGN KEY("kunde_id") REFERENCES "User"("user_id")
);
CREATE TABLE IF NOT EXISTS "Residence_Permit" (
	"residence_permit_id"	INTEGER NOT NULL UNIQUE,
	"residence_permit_type"	varchar,
	PRIMARY KEY("residence_permit_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "Education" (
	"education_id"	INTEGER,
	"high_school"	boolean,
	"university"	boolean,
	"integration_course"	boolean,
	"dsh_course"	boolean,
	"german_level"	varchar,
	PRIMARY KEY("education_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "User" (
	"user_id"	INTEGER NOT NULL UNIQUE,
	"first_name"	varchar,
	"last_name"	varchar,
	"birthday"	varchar,
	"gender"	varchar,
	"country"	varchar,
	"email"	varchar UNIQUE,
	"mobile"	varchar,
	"username"	varchar UNIQUE,
	"password"	varchar,
	PRIMARY KEY("user_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "User_Calendar" (
	"user_id"	INTEGER,
	"calendar_id"	INTEGER,
	FOREIGN KEY("calendar_id") REFERENCES "Calendar"("calendar_id"),
	FOREIGN KEY("user_id") REFERENCES "User"("user_id")
);
CREATE TABLE IF NOT EXISTS "Calendar" (
	"calendar_id"	INTEGER,
	"string_calendar_id"	TEXT UNIQUE,
	"calendar_name"	varchar,
	PRIMARY KEY("calendar_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "Type" (
	"type_id"	INTEGER,
	"document_type"	varchar,
	PRIMARY KEY("type_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "User_Event" (
	"event_id"	INTEGER,
	"created_by_user_id"	INTEGER,
	"for_user_id"	INTEGER,
	FOREIGN KEY("event_id") REFERENCES "Event"("event_id"),
	FOREIGN KEY("created_by_user_id") REFERENCES "User"("user_id"),
	FOREIGN KEY("for_user_id") REFERENCES "User"("user_id")
);
CREATE TABLE IF NOT EXISTS "Event" (
	"event_id"	INTEGER,
	"string_event_id"	INTEGER,
	"event_name"	varchar,
	"from_date"	varchar,
	"from_time"	varchar,
	"to_date"	varchar,
	"to_time"	varchar,
	"location"	varchar,
	"event_type"	TEXT,
	"calendar_id"	INTEGER,
	PRIMARY KEY("event_id" AUTOINCREMENT),
	FOREIGN KEY("calendar_id") REFERENCES "Calendar"("calendar_id")
);
CREATE TABLE IF NOT EXISTS "User_Document" (
	"document_id"	INTEGER,
	"user_id"	INTEGER,
	"document_for_user"	INTEGER,
	FOREIGN KEY("user_id") REFERENCES "User"("user_id"),
	FOREIGN KEY("document_id") REFERENCES "Document"("document_id")
);
CREATE TABLE IF NOT EXISTS "Document" (
	"document_id"	INTEGER,
	"document_name"	varchar,
	"document_language"	TEXT,
	"document_data"	BLOB,
	"document_version"	varchar,
	"document_upload_date"	varchar,
	"prefix"	TEXT NOT NULL,
	"path"	TEXT,
	PRIMARY KEY("document_id" AUTOINCREMENT)
);

Dependencies :

Hier sind die alle notwendige Dependencies

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.xerial</groupId>
			<artifactId>sqlite-jdbc</artifactId>
			<version>3.30.1</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>com.google.api-client</groupId>
			<artifactId>google-api-client</artifactId>
			<version>1.23.0</version>
		</dependency>

		<dependency>
			<groupId>com.google.oauth-client</groupId>
			<artifactId>google-oauth-client-jetty</artifactId>
			<version>1.23.0</version>
		</dependency>

		<dependency>
			<groupId>com.google.apis</groupId>
			<artifactId>google-api-services-calendar</artifactId>
			<version>v3-rev305-1.23.0</version>
		</dependency>

		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4.7</version>
		</dependency>

		<dependency>
			<groupId>com.twilio.sdk</groupId>
			<artifactId>twilio</artifactId>
			<version>7.20.0</version>
		</dependency>
	</dependencies>

Das Projekt ausfühen :

Zuerst wurde die Anwendung auf dem lokalen Computer mit dem Betriebssystem macOS Big Sur und auf einem Macbook Air erstellt. Mit dieser einfachen Anwendung wurden viele der Funktionen eingeführt und konfiguriert, die später im größeren Kontext verwendet werden. Zu diesem Zweck wurde das Maven Plugin mit einem eingebetteten Anwendungsserver verwendet.

Die Anwendung wurde mit dem Git-Repository verbunden, das den gesamten Quellcode enthält und die Versionskontrolle für die Anwendung durchführt. Die Datenbank wurde so erstellt und konfiguriert, dass sie zuverlässig und skalierbar ist und mit der Anwendung verbunden wurde. Die Anwendung kann von meinem Github durch das Klonen des Repositorys Plattform_VAKS_Siegen heruntergeladen werden.

Durch die Eingabe der folgenden Befehle im Terminal kann der Prozess durchgeführt werden : Apache Maven muss installiert sein oder kann über den folgenden Befehl durch Homebrew installiert werden: brew install maven

Bei der Eingabe des Befehls mvn spring-boot:run im selben Verzeichnis, in dem der Klonen-Prozess durchgeführt wurde, dann ist die Anwendung über Port 8080 zugänglich. Die Homepage kann über den Browser über die URI localhost:8080/ aufgerufen werden.

plattform_vaks_siegen's People

Contributors

mohammedali-anis avatar

Watchers

 avatar

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.