Computer Science Department
PicPic: Guide to Industry Level Software Development
Seok Jun Hong
Building a complete Backend Application with an industry-level production environment is a key in becoming successful software engineer that can contribute to advanced level industry software. Moreover, it is difficult for students to set up development environment without industry experience. Also, when developing personal projects, students disregard the significance of the system design and architecture of the software in building sustainable and scalable products. Unlike the personal project that developers can always stop and re-run whenever they want, an industry-level product must maintain its service all the time even if it has updates. PicPic will show a complete application that can be maintained for the long term. It will update the application with new features while keeping the service online. It will protect the service from outside threats by building cloud infrastructure with private networks and traffic handlers.
The project uses Domain Driven Design (DDD) principle and the Hexagonal architecture with dependency injections and Domain-Persistence Mappers to ensure the decoupling of different module layers. Complete CI/CD (Continuous Integration and Continuous Deployment) cycle enables engineers to continuously deliver new features with automated testing and deployment without any downtime of the server. Finally, building cloud infrastructure with IaC (Infrastructure as Code) will allow engineers to keep track of changes in infrastructure by version controls. PicPic will simulate how industry-level software development is working.
The project PicPic is a Backend Application that shows a complete picture of industry software development environment from basic endpoints to automated deployment using CI/CD cycle.