This repository contains the sessions and challenges of the summer training 2023 at the Faculty of Computers and Information Sciences, Ain Shams University.
The training was hosted by Science and Tech committee of @Open Source Community at FCIS - ASU's Saeed AbdelWahab hall, and it was prepared by the S&T head Mohamed Samy and members of OSC S&T 23' committee.
The training was about the art of design patterns, and it was divided into 7 sessions, some sessions has a challenge that you can find in the Challenges
folder.
- Session 1: OOP Recap, Design Principles & SOLID
- Session 2: Creational Design Patterns
- Session 3: Structural Design Patterns
- Session 4: Behavioral Design Patterns
- Session 5: Refactoring & Clean Code I
- Session 6: Refactoring & Clean Code II
- Session 7: Project evaluation (No Slides)
The Art of Design Patterns Mini uber
You should deliver a project with the following functionality (more details in session 1)
Requirements:
1- Login / Register 2- DB or Files 3- Request Rides 4- Payments 5- Many Ride Types Normal, Premium, Bus, Motorbike 6- Support Tickets (customer care) 7- Many Routing algorithms (can be trivial like : price = distance*2)
Evaluation critiria:
1 - Applying SOLID principles
2- Using Suitable design patterns for each use case
3- No unnecessary usage of design patterns (KISS: Keep It Simple, Stupid)
4- No unnecessary / unused code (YAGNI)
5- Sticking to languages' Coding conventions
6- Overall clean and readable code
7- GUI is a plus
8- Any Extra functionality / Ideas is a plus
9- The whole team should be aware of the architecture and ready to be asked about any part
Sessions and summer training were prepared by:
- @Mohamed Samy S&T Head 23'
- @Mazen Bakr S&T Vice Head 23'
- @Mahmoud Mohamed
- @Mariem Ahmed
- @Tasneem Bahaa