Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/similato87/academia-planner

Course project exploring GOF design patterns. Team collaboration to design a student course registration system, integrating multiple software patterns. Includes both test and functional components.
https://github.com/similato87/academia-planner

coureseregistration designpatterns gof softwarearchitecture systemdesign

Last synced: about 11 hours ago
JSON representation

Course project exploring GOF design patterns. Team collaboration to design a student course registration system, integrating multiple software patterns. Includes both test and functional components.

Awesome Lists containing this project

README

        

# Academia-Planner
The system we are going to build is a course registration system.
## Software Patterns
- **Singleton**
Classes: Database
- **Proxy** (enrollments)
Classes: EnrollmentProxy
- **Builder** (enrollments)
Classes: EnrollmentBuilder
- **Factory method** (department)
Interface: Department, DepartmentFactory Classes: CSDepartment(Factory), SWEDepartment(Factory), ECEDepartment(Factory)
- **Adaptor** (record, recordAdaptor)
Classes: Record, RecordAdaptor
- **Iterator** (students, courses)
Interface: Iterator, Classes: StudentIterator, CourseIterator
- **Composite** (enrollment, transcript)
Interface: Registration, Classes: Transcript
## Result
Demo: Example to create a student's transcript
```
CS1073 Java I A 16.0
Transcript of John Doe(ID:3333333)
CS1073 Java I A 16.0
CS1083 Java II B- 10.8
SWE4403 Software Design Patterns and Architecture A- 14.8
Average Percentage: 81.66666666666667

Search for student with ID: 3333333
Student: John Doe(3333333), Business, Fredericton

Search for course with code: CS1073
Course[code='CS1073', name='Java I']

Search for enrollment with ID: 1
Enrollment (1): John Doe(3333333) SWE4403 85.0 pass

Process finished with exit code 0
```