GitHub Link
https://github.com/masibasi/a-form/
Service Link
server.acceler.kr → The service is hosted on the school's On-Premise server, so it may be offline.
https://github.com/KEA-ACCELER/aform-cluster → You can try running it with Docker Compose for integrated configuration.
🎥 Demo Video
https://youtu.be/6K8LaMvuNQc
📢 Presentation Video
https://youtu.be/i9Q12nDDzeg
📖 Presentation Slides
⭐️ Project Overview
A-Form is a survey platform website developed at the Gachon University Kakao Enterprise SW Academy.
With the catchphrase "Amazing Form Automatical Form By team ACCELER!", this service addresses existing issues by providing AI-based automatic survey generation, automated summarization of survey results, and community features that encourage interaction and feedback between survey creators and respondents.
It was implemented using a Microservices Architecture (MSA) based on a Cloud system, and you can check it out at https://server.acceler.kr/.
📑 System Architecture
External access is routed through the nginx ingress controller, and based on the ingress rules, it connects to each service.All MSA services are duplicated, and load balancing is implemented through Kubernetes services to achieve high availability and load distribution.👬 Team Composition
5 developers: Front-end (2), Back-end (2), PM (1)Collaboration tools used: Git, Figma, NotionI served as the Front-end Development Team Leader.We communicated, provided feedback, and kept records using Notion.🔨 Responsibilities
UI Design with FigmaUX DesignReact Project StructuringPage ImplementationResource OptimizationBack-End CommunicationDocker Container DeploymentBack-End CORSProject Personal Presentation Slides
https://drive.google.com/file/d/1n7QTYvVVTEx4injB_7ZejEFbGtQlGtQG/view?usp=sharing
⚒️ Technologies and Libraries Used
JavaScriptReactaxiosDocker💡 Reflections
Working on the development of front-end, back-end, and cloud engineering as a team allowed me to deeply understand the importance of collaboration and effective communication. I learned the significance of conveying ideas through meetings, planning stages, commenting, code structure, directory management, and writing commit messages, as well as the importance of recording the process of problem-solving and decision-making.Leading the front-end development team taught me how to collaborate with other front-end developers. I experienced resolving conflicts when committing to Git, and the process of resolving them, which eventually taught me the importance of distinguishing and separating pages for individual development and components for shared development.Completing the front-end development of an entire service and deploying it on the cloud gave me confidence in my abilities.I found it rewarding to develop while considering user requirements and striving to meet their needs.The process of deploying CI/CD on the cloud was a new experience for me.Combining existing front-end technologies with cloud architecture was a novel and exciting experience. Working with the team, I learned and gained insights from the development of front-end, back-end, data, and cloud technologies, and I grew from thinking from various perspectives.