indem Sie die angehängten Repositories in diesem Profil überprüfen, können Sie sich besser über den Inhalt informieren und die Projekte schneller untersuchen. Lost geht's!
Go to Project 7 - Device-Based Content Clustering with DBSCAN And K-Prototype Algorithms in Mobile Applications
📂 Project 1- AnfrageDerBetriebsstelleMittelsAbkuerzung
-CSV-Daten wurden untersucht und es wurde entschieden, mit "Set Data Struktur" zu arbeiten, da die Werte in der RL100-Code-Spalte eindeutig sind und die Suche durch diese Spalte bearbeitet wird.
-Es gibt leere Werte in der Spalte mit dem Namen Typ Kurz, ich wollte Informationsverlust verhindern, indem ich in diesen Abschnitten Typ Lang verwende.
-Ich habe eine oberflächliche Unit-Test-Methode über die OperationOfficeFactory-Klasse geschrieben, aus der wir die CSV Daten einlesen. Obwohl es nicht direkt mit dem Konzept des Testens zusammenhängt, wurde die Methodenvielfalt durch die Gestaltung von Validierungsbestimmungen mit Unit-Test-Methoden erhöht, und gleichzeitig wurden "Stream-Operationen" erwähnt.
-Integrationstest wurde mit einer Datenbank auf AWS durchgeführt (Details folgen später).
-Dank der Validierungen, die während "Get Request" laufen, konnte ich die Verschwendung von Ressourcen minimieren.
-Collection link in Postman: https://www.getpostman.com/collections/a259b863777eadeb1f6b
-Im ersten und einfachen Szenario werden csv-Dateien unabhängig von einer Datenbank mit dem Pojo-Objekt namens „OperationOffice“ verarbeitet. Diese Anfrage zielt darauf ab, die gewünschte Basisleistung im Projekt darzustellen, ohne dass eine Sicherheit verlangt wird.
-Statt Fehlerdetails wie "timestamp-status-error-trace" usw.Durch "Exception Handling"-Mechanismen werden dem Benutzer verschiedene Fehlermeldungen angezeigt.
-Im zweiten Szenario wird dieselbe OperationOffice-Klasse als Entität mit einem anderen Ansatz dargestellt, indem die Datenbank-, Authentifizierungs- und Autorisierungsprozesse in einer mehrschichtigen Architektur durchlaufen werden.
-Eine einfache Benutzerregistrierung und ein Login-Code wurden entwickelt. Das Passwort ist verschlüsselt und die APIs Connection wird mit JWT bereitgestellt.
-Der Benutzer kann ohne das Token nicht mit dem Server kommunizieren. Als Ergebnis erfolgreicher Anmeldungen mit dem Token zurückgegebene Objekte werden in einer Datenbank gespeichert, die sich in der AWS-Cloud befindet! Ich erwähnte, dass ich einen einfachen Integrationstest über diese Datenbank geschrieben habe!
-Da es sich um den Primärschlüssel Code handelt, wird Daten Wiederholung vermieden! Also selbst wenn der Benutzer dieselbe Anfrage 100-mal zu unterschiedlichen Zeiten schreibt, wird nur 1 aufgenommen!
-In der Datei application.properties werden Logging-Level-Anpassungen für verschiedene Klassen über die Slf4j-API vorgenommen.
-"Logging data" werden in einem benutzerdefinierten Format in operationOffice.log gespeichert. Die maximale Dateigröße, die maximale Gesamtgröße der Logging-Daten und die Aufbewahrungszeit werden angegeben. Der Logging-Verlauf wird bei jedem Programmstart gelöscht (er wird nicht gelöscht, wenn er innerhalb des nächsten Tages gestartet wird).
-Es wird eine einfache Logging auf Methodenebene durchgeführt. Außerdem wird die Logging auf Methodenebene mithilfe des AOP-Ansatzes mit benutzerdefinierter Annotation entworfen!
-04.08.22
-Am Anfang des Projekts stand die Idee, dass die csv-Daten sich bei jeder Abfrage möglicherweise ändern könnten, sodass wolte ich die csv-Datei direkt Zeile für Zeile einlesen, um die aktuellsten Daten zu übertragen.
-Deswegen wurde nach dem einmaligen Auslesen der csv-Datei der Link http://localhost:8082/api/betriebsstelle/collection/{code} angelegt, um die Daten statisch zu halten und so die Daten in der Collection auszulesen.
-Auf diese Weise wird ersichtlich, dass die Lesegeschwindigkeit durch Beobachten von Logging Daten zunimmt. Allerdings bleibt, wie anfangs erwähnt, der Status der erstmalig gelesenen Daten erhalten!
Zusätzliche Verbesserungen
-
Versioning and documentation of APIs
-
Dockerizing Jar files and run on AWS ECS
-
Different Grant Types Using Oauth2
-
Logging Operations and AOP Approach (added on 02.08.22)
-
Creating custom annotations (added on 02.08.22)
-
Spring MVC + Angular
📂 Project 2- Microservices
-microservices communication using spring cloud
-provide communication and load balancing between microservices using eureka discovery server
-databases created with postgresql, entered queries to checked with pgadmin
-a more scalable communication is provided with open feign instead of using resttemplate.
-used sleuth for an auto configured distributed tracing and zipkin for checking the tracing system
-external load balance(main entry point) between clients and instances using api gateway
-i have created a simple message queue with rabbitmq in order not to reflect the delays due to problems between services to the user.
-the project was run with jar files, then docker images cretad and uploaded by using these jar files, lastly containers were created and the project was run entirely on docker.
-the project was run on kubernetes for testing using minikube on docker
📂 Project 3-e-commerce Website using monolithic architecture
-In this mvc-based application designed with spring boot, thymeleaf template engine is used to interact with the frontend.
-frontend designed with html css bootstrap and jquery also scaled for others devices like phones and tablets
-data is kept in postgresql and spring data jpa is used in data access layer
-Spring RESTful Webservices used in conjunction with jQuery on the client side
-includes JUnit, Spring Test, AssertJ and Mockito for unit tests and integration tests
-data can be downloaded in csv, excel and pdf formats
-Certain users have certain responsibilities and role based authorizations.for example admin controls everything but salesperson can't see users and customers
-custom error pages
-pagination , filtering and sorting
📂 Project 4- Rest Api talks with Web Service Geonames Server
This application covers alost of attemps related to spring boot Fundamentals and i listes some of them below.
Spring Boot side
-exception handling
-basic principles like map struct
-different update approaches, layered architect etc.
-custom exception handling layer by layer
DB Side
-testing /database file /h2 memory DB / PostgreSQL using test containers
-a basic cache mechanism between entity and web service. If the address is in the DB, data is fetched directly from DB without interacting with web service.
-JDBC principles, using queries and functions in spring boot and connection with JPA repositories.
-Hibernate and JPA principles, table relations include native, jpql, repository queries.
-if a postal code is already in database ,we don't communicate with server.
Testing Side
-Unit and Integration tests using different databases and docker contaniners
Security Side
-Basic and Bearer Token
-let's sign in
-it is possible to create a movie info !
-and create an order using our card
-If a card has been entered into the system, it cannot be entered by another person!
-if a postal code is already in database ,we don't communicate with server.
📂 Project 5- REST API - Blog
-login and signup
-memory based authentication, token-based authentication using jwt
-request validation
-pagination and sorting / page no and page size are optional
-transaction management
-exception handling
-versioning apis
-api documentation using swagger api
-deploying on aws cloud (elastic beanstalk,rds,amazon w3)
📂 Project 6- TCP Client Server
-My library, which contains functional interfaces consumed by stream api in various methods and using factory classes on csv files, is used by the server.(for more infos please read docx file)
-The client goes through a 3-level password system, if it keeps the server busy for more than 20 seconds, it will be kicked out automatically.
-The server can serve 100 clients asynchronously. Check the jpeg below
🗂 🗂 🗂 Also you can check my works related to files,generics and exceptions
📂 Project 7- Device-Based Content Clustering with DBSCAN And K-Prototype Algorithms in Mobile Applications
-The time devices spend on apps and content are crucial factors in creating a more interactive experience and personalized content for the user. In other words, various tables, galleries, etc., in one application throughout the day. These activities are intended to be grouped according to parameters such as the time the user browses the web, likes photos, clicks on the gallery, and watches videos.
The results are proven by using hypothesis testing and summarized in the Tableau. It is revealed that it is possible to combine the wishes and tendencies of the user corresponding to the products in the market.
-for more infos please read docx file