[{"content":" Class Diagram # Working from the domain model and user stories, I started creating a class diagram and mapping out the relations between entities.\nWhile building the class diagram, I coded alongside it — starting with all entities from the domain model to get a better overview and catch anything I might be missing.\nI changed Event to an abstract class, since I wanted to support both one-time and recurring events. In the end I only needed Event, because I decided to store dates in a Set instead of splitting into subclasses.\nAfter that, I added the ENUMS I needed and filled in their constants.\nJPA # Next was wiring up the relations through JPA annotations. I started simple — @OneToOne, @OneToMany, @ManyToMany — and built from there. Two areas needed extra research making annotations for Sets from Collections, and abstract entity classes.\nSets\n@ElementCollection abstract classes\n@Inheritance(strategy = InheritanceType.SINGLE_TABLE) Every subclass of an abstract entity gets its own table, keeping the inheritance hierarchy properly represented in the database.\nClass Diagram 1.0 ","date":"22 August 2026","externalUrl":"blog/seecph-blog/#jpa","permalink":"/updates/seecph-blog/03-entities-jpa/","section":"Updates","summary":"Making relations in the architecture more sound.","title":"seeCph: Class diagram \u0026 JPA","type":"updates"},{"content":"Making user stories to get a better grasp of the projects and make it easier to analyze further on. First in form of a domain model seen below, though it\u0026rsquo;s a rough model and probably will evolve doing the project.\nDomain model ","date":"22 August 2026","externalUrl":"blog/seecph-blog/#planning","permalink":"/updates/seecph-blog/02-planning/","section":"Updates","summary":"Making user stories to get a better grasp of the projects and make it easier to analyze further on. First in form of a domain model.","title":"seeCph: User stories \u0026 Domain Model","type":"updates"},{"content":" Tajan92/portfolio HTML 0 0 ","date":"21 August 2026","externalUrl":"blog/seecph-blog/#Project-Start","permalink":"/updates/seecph-blog/01-start/","section":"Updates","summary":"Setup of project structure and repository on github","title":"seeCph: Project Start","type":"updates"},{"content":"","date":"22 August 2026","externalUrl":null,"permalink":"/categories/analyzing/","section":"Categories","summary":"","title":"Analyzing","type":"categories"},{"content":"","date":"22 August 2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"22 August 2026","externalUrl":null,"permalink":"/tags/class-diagram/","section":"Tags","summary":"","title":"Class Diagram","type":"tags"},{"content":"","date":"22 August 2026","externalUrl":null,"permalink":"/tags/domain-model/","section":"Tags","summary":"","title":"Domain Model","type":"tags"},{"content":"","date":"22 August 2026","externalUrl":null,"permalink":"/","section":"Home","summary":"","title":"Home","type":"page"},{"content":"","date":"22 August 2026","externalUrl":null,"permalink":"/tags/jpa/","section":"Tags","summary":"","title":"JPA","type":"tags"},{"content":"","date":"22 August 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"22 August 2026","externalUrl":null,"permalink":"/updates/","section":"Updates","summary":"","title":"Updates","type":"updates"},{"content":"","date":"22 August 2026","externalUrl":null,"permalink":"/tags/user-stories/","section":"Tags","summary":"","title":"User Stories","type":"tags"},{"content":"","date":"21 August 2026","externalUrl":null,"permalink":"/tags/github/","section":"Tags","summary":"","title":"Github","type":"tags"},{"content":"","date":"21 August 2026","externalUrl":null,"permalink":"/tags/java/","section":"Tags","summary":"","title":"Java","type":"tags"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":" Select a blog below to explore the timeline: ","externalUrl":null,"permalink":"/blog/","section":"Blogs","summary":"","title":"Blogs","type":"blog"},{"content":"","externalUrl":null,"permalink":"/tags/css/","section":"Tags","summary":"","title":"CSS","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/digital-ocean/","section":"Tags","summary":"","title":"Digital Ocean","type":"tags"},{"content":"","externalUrl":null,"permalink":"/categories/exam-projects/","section":"Categories","summary":"","title":"Exam Projects","type":"categories"},{"content":" A 2nd-semester exam project by a team of 3 at EK Lyngby, making a better solution for Johannes Fog\u0026rsquo;s custom carport order process. Tajan92/Carport-Fog Java 1 0 Java \u0026amp; MVC Backend Built using robust Java Object-Oriented paradigms following the Model-View-Controller architecture for high maintainability. Database \u0026amp; Deployment Relational PostgreSQL database for data storage, deployed and hosted live on a Digital Ocean. Frontend \u0026amp; SVG Rendering Clean HTML, CSS, and JavaScript creating dynamic SVG vector graphics directly scaled to customer dimensions. Collabrative Project We built the project on a solid foundation of analyzes in form of user stories, a domain model, ERD diagram, risk assesment, class diagram, figma all over good discustions to deliver a good software arcitecture and evolve as developers.\ngithub and Kanban # Extra security with a good github setup, with no possibillity to push without making a pull request and review and approval from at least another member.\nAlways keeping track of schedule with Kanban \u0026amp; weekly meetings for reviewing the weeks work and planning ahead.\n80%\nJUnit Testing\nUp to 80% test coverage. See project here Carport Fog ","externalUrl":null,"permalink":"/projects/fog-carport/","section":"Projects","summary":"","title":"Fog-Carport","type":"projects"},{"content":"","externalUrl":null,"permalink":"/tags/javascript/","section":"Tags","summary":"","title":"JavaScript","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/postgressql/","section":"Tags","summary":"","title":"PostgresSQL","type":"tags"},{"content":"","externalUrl":null,"permalink":"/projects/","section":"Projects","summary":"","title":"Projects","type":"projects"},{"content":" seeCph Backend API # Project Start 21 august, 2026 Tajan92/portfolio HTML 0 0 Planning 25 august, 2026 Making user stories to get a better grasp of the projects and make it easier to analyze further on. First in form of a domain model seen below, though it\u0026rsquo;s a rough model and probably will evolve doing the project.\nDomain model JPA 25 august, 2026 Class Diagram # Working from the domain model and user stories, I started creating a class diagram and mapping out the relations between entities.\nWhile building the class diagram, I coded alongside it — starting with all entities from the domain model to get a better overview and catch anything I might be missing.\nI changed Event to an abstract class, since I wanted to support both one-time and recurring events. In the end I only needed Event, because I decided to store dates in a Set instead of splitting into subclasses.\nAfter that, I added the ENUMS I needed and filled in their constants.\nJPA # Next was wiring up the relations through JPA annotations. I started simple — @OneToOne, @OneToMany, @ManyToMany — and built from there. Two areas needed extra research making annotations for Sets from Collections, and abstract entity classes.\nSets\n@ElementCollection abstract classes\n@Inheritance(strategy = InheritanceType.SINGLE_TABLE) Every subclass of an abstract entity gets its own table, keeping the inheritance hierarchy properly represented in the database.\nClass Diagram 1.0 ","externalUrl":null,"permalink":"/blog/seecph-blog/","section":"Blogs","summary":"","title":"seeCph Backend API","type":"blog"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/categories/web-development/","section":"Categories","summary":"","title":"Web Development","type":"categories"}]