The Egyptian Association for Therapeutic Nutrition app is a comprehensive event companion application available on both Android and iOS devices, developed specifically for the EATN 4 event held on May 15, 2026. Similar to major event applications like Techne Summit and Connecta, it empowers attendees with an array of features to navigate the event seamlessly.
As a backend developer at Rockaidev, Eng. Ahmed Soliman and I were responsible for the API that powered this platform. The system supported critical features such as agenda management, session tracking, notifications, and event engagement tools, all while successfully serving over 3,000+ concurrent users during the high-traffic event day.
While this app was not as complex as Propai or Done, It was still a challenge due to the strict deadline before the event day. This project was a highlight of how much we grew & learned from working on earlier projects at Rockaidev, the difference was measurable between the development speed, quality of documentation and quality of communication in this project compared to previous projects.
Engineering Highlights:
Here are some of the technical challenges and architectural highlights from the EATN backend project:
1. Intelligent Session & Agenda Management
Managing a dynamic event agenda required a highly robust tracking system. The backend effortlessly supported personalized attendee schedules while enforcing complex criteria such as room capacity limits, detecting and notifying users about conflicts in their own schedule, and specialized "Meet & Greet" approval workflows. We integrated an automated rating engine and enabled VIP users to bypass standard pending queues, all while managing live attendee tallies precisely without race conditions.
2. Deeply Localized FCM Notification Engine
A core feature of any event companion app is ensuring attendees know exactly where they need to be. We built a heavily structured wrapper around Firebase Cloud Messaging (firebase-admin), enabling:
- Rich Multilingual Support: Titles and bodies were dynamically hydrated for both Arabic and English payloads.
- Batched Delivery & Auto-Pruning: Discarding invalid or expired iOS/Android device tokens continuously during mass broadcast loops to optimize database footprints.
- Decoupled Architecture: Handled via
EventEmitter2, meaning complex workflows like "A speaker rescheduled their session" automatically constructed localized bulk notifications and triggered email pipelines completely detached from the core HTTP thread.
3. Real-Time Reactive Cache Invalidation via FCM
To ensure near-insant updates for the admin observing the dashboard, we implemented a sophisticated event-based Cache Invalidation engine. Through a dedicated CACHE_INVALIDATION data-only push notification, the server transmits target invalidation tags (like [AGENDA, MEET_AND_GREET_REQUESTS]) directly to admins. The dashboard receives this silent data payload securely in the background and instantly refetches the fresh data.
Although invalidation events are best implemented with WebSockets for even faster delivery, we weighed the pros and cons and decided on FCM for its reliability and ease of implementation; since we didn't find any other use for WebSockets in the Dashboard, and were already using FCM for notifications.
4. Clean Architecture Under Pressure
Despite the unyielding deadline constraint, the backend codebase maintained exceptional code quality. Utilizing NestJS, Mongoose, and Class-Validator allowed us to adhere to strict validation schemas. Additionally, we integrated automatic Apidog syncing pipelines for API documentation updates, guaranteeing that the mobile and frontend teams were always perfectly synced with backend developments, eliminating potential integration bottlenecks entirely.
The pre-event day was quite an experience. We worked until midnight to make sure everything was ready before the event. Later that day, I received the data files and had to perform some manual cleanup on the Excel sheets. I then built an API endpoint that processed the uploaded files, seeded all valid records into the database, and generated a separate Excel sheet containing any invalid rows. This allowed the admin team to correct the problematic entries and re-upload the file without having to start the entire process from scratch.
