Skip to content

AlexandruGH/AC_Inginerie_Software_2024-2025

Repository files navigation

AC_Inginerie_Software_2024-2025

Assignments

Bonus

~ Laboratory Rules ~

  • Learn by doing.

  • Don't do any copy-paste of code. Write everything with your own hands.

  • Remember: Learning is done with your hands, not with your eyes.

  • Code iteratively: Run the code often and after any new changes. Solve the bugs and errors ASAP and not at the end when the entire project code is written.

  • Debug your code whenever is necessary.

  • "Done is better than perfect."

  • Contact: Alexandru Ghiuruțan ([email protected])

Laboratory 1 - Recap

Story

Theory

Practice

Homework 1 - Zoowsome

Laborator 2 - SOLID

Story

Theory

Practice

Homework 2 - SOLID

Laborator 3 - Dependency Injection & Design Patterns

Story

Theory

Practice

Homework

Laborator 4 - Design Patterns & Layers

Story

Theory

Practice

MySQL installation

Laborator 5 - Layers Repository & Database

Story

Theory

SQL Injection Concept Attack & Defense

Table Engines and specifics for SQL Queries

Transactional Behavior in Databases and ACID Properties

Database Indexes specifics B-Trees: Search, Insert, Delete Times of O(Log(N)) vs HashTable O(1)

Java features Discussed in the Lab

Practice

Lab code example. Make sure it runs, fill in the missing repository methods and reproduce SQL Injection Attack. Debugger is your friend.

MySQL Tutorial

Laborator 6 - Service, Cache and Authorization

Story

Theory

Practice

Make sure current project is working and you understand its code and functionality

Add suport for the EBook(Long id, String author, String title, String format, Date publishedDate) and AudioBook(Long id, String author, String title, int runTime, Date publishedDate) into our aplication: Service, Repository, Database, Model.

Laborator 7 - Generics, Bootstrapping, Scripting, Constants, Hashing, Authentication and UI/JavaFX

Story

Theory

Generic Repository

Patterns, Anti-Patterns and Good Practices

Practice

Lab Code examples available on the branch and Explanation Recording

MySQL Dependency for Gradle

MySQL Tutorial

Homework

Add Sale support for the BookStore application: support Book price, stock and an Order Table to store what has been sold and at when

Laboratory 8 - Fowler Notification Pattern, Password and how to store them

Theory

Password Hashing

Practice

Laboratory 9 - Command, Strategy, Observer, MVC

Theory

Practice

Laboratory 10 - Project Presentation and Laboratory Test

Laboratory 11 - Networking, MultiThreading and Chat Application

Theory

Practice

Chat Application example

Compile and Run from the command line:

javac -d ./out/ ./package_name/sub_package_name/*.java

cd out

java package_name.sub_package_name.ExampleClassName

For example Four please make sure you are using jdk 21 such that VirtualThreads are available.

Messaging APP - LEVEL One https://www.digitalocean.com/community/tutorials/java-socket-programming-server-client

Level Two https://gyawaliamit.medium.com/multi-client-chat-server-using-sockets-and-threads-in-java-2d0b64cad4a7

Level Three https://medium.com/@gabriellamedas/java-threads-and-executors-48963d26e878

Level Four https://www.youtube.com/watch?v=N2sskKGnCqc

Laboratory 12 - Client Server, Peer-to-Peer, HTTP & REST, Async & Await

Theory

Practice

Laboratory 13 - Spring Security, Deployment, Scrapers & Crawlers and New Design Principles

Theory

Practice

Bonus

Laboratory 14 - Project Presentations and Evaluation

Bonus Lab

Algorithmic Interview Problems

Theory

Practice

Bonus Financial Independence

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages