Gladioforce
Gladioforce
OPO: Project 4.0
A comprehensive membership management system developed for the Gladiolen festival, known as the best small festival in Europe. This was a real-world client project where our team of 6 developers delivered a complete solution for managing festival and all its administrative tasks.
Project Overview
Duration: 3 months (February - April 2024)
Team Size: 6 developers (Tommy, Dennis, Pieter, Yordi, Jonas, Dries)
Role: Full-stack developer
Client: Gladiolen festival organization
Key Features
- Administration: Complete administrative management of the festival
- Editions: Management of different festival editions
- T-shirts: Management of festival merchandise
- Core Members: Registration and management of core members
- Volunteers: Registration and management of volunteers
- Associations: Management of participating associations
- Time Clock: Time registration system for staff
Technical Implementation
Backend
- Django Python with Django Ninja for fast, type-safe API endpoints
- MySQL database for data storage
- Swagger according to openAPI specifications for API documentation
- Firebase integration for additional functionalities
Frontend
- Angular framework for a responsive single-page application
- SASS for advanced styling capabilities
- Material Design components for consistent UI/UX
Infrastructure
- Docker Compose for containerization and deployment
- Terraform for infrastructure as code
- AWS hosting with separate production and lab environments
- Web Tier and App & DB Tier architecture for optimal scalability and security
Documentation
- Installation Guide: Detailed instructions for local installation
- Host Installation Guide: Manual for deployment on production servers
- User Manual: Comprehensive user guide for end users Download the pdf
Challenges & Solutions
Challenge: Running multiple frontends on one large API with different sub-APIs
Solution: Modular API architecture with clear separation of responsibilities
Challenge: Time management and planning
Solution: Improved communication and realistic time schedules
Skills Learned
Soft Skills
- Communication: Clear and frequent alignment, preventing misunderstandings
- Collaboration: Dividing roles, supporting each other, providing feedback
- Time Management: Setting priorities, planning tasks, monitoring progress
- Problem-solving: Quickly devising solutions when obstacles arise
Technical Skills
- Firebase implementation and integration
- Swagger according to openAPI specifications
- Running multiple frontends on one large API with different sub-APIs
- Understanding the difference between production and lab environments in AWS
Stack
- Backend: Django, Django Ninja, MySQL
- Frontend: Angular, TypeScript, SASS
- Infrastructure: Docker Compose, Terraform, AWS
- Additional Technologies: Firebase, Swagger
My contribution
Within this project, I took full responsibility for the back-end, both in terms of architecture and development. I designed and implemented the API, the database, and the integration with external services such as Firebase. I also played a leading role in making decisions regarding the technologies used and the composition of the stack. Additionally, I set up the codebase to be modular and scalable, making it easy to extend and maintain.
Towards the end of the project, I also actively contributed to the front-end development, including solving complex issues, optimizing the user experience, and implementing key functionalities in Angular.
In addition to my technical contributions, I regularly supported the team with knowledge sharing, code reviews, and technical coordination to ensure the quality and progress of the project.
Although the project was a team effort, I took on by far the largest share of the work. My commitment, technical expertise, and coordinating role were decisive for the success and quality of the final result.
Outcomes
- Fully functional administration system for the Gladiolen festival
- Streamlined processes for volunteer and member management
- Scalable and maintainable codebase for future extensions