How uatisdeproblem/egm-app works
1. Purpose and topology
EGM app is an event-management system for participants, registrations/spots, content scheduling, meals, communications, and participating organizations. It is a TypeScript monorepo with an Ionic/Angular client, AWS serverless backend, and standalone data scripts.
• front-end/src/main.ts
• back-end/deploy/main.ts
• scripts/src/sessionFeedback.ts
2. Client application and entry
The user-facing application is an Angular/Ionic single-page app. Its root module, router, and shell establish startup, navigation, guards, and tabbed event workflows. Capacitor wraps the same web app for Android and iOS distribution.
• front-end/src/app/app.module.ts
• front-end/src/app/app-routing.module.ts
• front-end/src/app/tabs/tabs.routing.module.ts
3. Authentication and authorization boundary
Cognito is the identity provider. Client auth pages/services acquire identity and route protection is enforced by authentication, initialization, management, and spot guards. Backend handlers expose auth/Cognito integration and apply the server-side identity boundary.
• front-end/src/app/auth/auth.service.ts
• front-end/src/app/auth.guard.ts
• back-end/src/handlers/auth.ts
• back-end/deploy/cognito-stack.ts
4. Event domain API and persistence model
The backend is organized as API handlers around event aggregates: users/registrations and spots; sessions/speakers/venues/rooms; organizations, meals, contests, and communications. Model files define the shared persistence-facing domain shapes. The API contract is published in Swagger.
• back-end/src/handlers/registrations.ts
• back-end/src/handlers/sessions.ts
• back-end/src/handlers/eventSpots.ts
• back-end/src/models/session.model.ts
• back-end/swagger.yaml
5. Primary client-to-backend flow
Feature pages and their services load or mutate API resources, then render event workflows. Management routes separate privileged configuration/content/registration operations from attendee-facing session, meal, organization, and personal-user areas. Guards gate route access before feature modules activate.
• front-end/src/app/tabs/manage/manage.routing.module.ts
• front-end/src/app/tabs/sessions/sessions.service.ts
• front-end/src/app/tabs/meals/meals.service.ts
• front-end/src/app/tabs/user/user.service.ts
6. Registration, spots, and notifications
Registration/spot lifecycle is a central cross-cutting flow: administrators or delegation roles manage capacity and participant assignments; backend registration and spot handlers trigger communications. SES notification handling and Handlebars templates form the email delivery boundary for confirmations, invoices, assignments, releases, and transfers.
• back-end/src/handlers/registrations.ts
• back-end/src/handlers/eventSpots.ts
• back-end/src/handlers/communications.ts
• back-end/src/handlers/sesNotifications.ts
• back-end/assets/registration-confirmed.hbs
7. AWS infrastructure and external services
AWS CDK composes environment-specific stacks for the API/domain, Cognito, static frontend delivery, media, maps, SES, and an “idea” deployment variant. The platform therefore depends materially on AWS API hosting, Cognito identity, SES email, media storage/delivery, and map-related infrastructure; Stripe is surfaced in the client payment UI.
• back-end/deploy/api-stack.ts
• back-end/deploy/front-end-stack.ts
• back-end/deploy/media-stack.ts
• back-end/deploy/map-stack.ts
• back-end/deploy/ses-stack.ts
8. Native and operational delivery
Web builds can be packaged through Capacitor into Android and iOS host projects. Deployment is driven from the backend CDK entry/deploy scripts; separate scripts support direct data-oriented operations such as session feedback processing.
• front-end/capacitor.config.ts
• front-end/android/app/src/main/java/org/esn/egm/MainActivity.java
• front-end/ios/App/App/AppDelegate.swift
• back-end/deploy.sh
Main entry points: registrations.ts Event API handlers · deploy/main.ts CDK deployment entry · app-routing.module.ts App shell & router · src/main.ts SPA entry
Components 18
Client app
Angular/Ionic attendee and management application.
- SPA entry
front-end/src/main.ts - App shell & router · Establishes navigation, tabs, and route activation.
front-end/src/app/app-routing.module.ts - Event feature services · Loads sessions, meals, user, and management workflows.
front-end/src/app/tabs/sessions/sessions.service.ts - Management routes · Separates privileged event administration workflows.
front-end/src/app/tabs/manage/manage.routing.module.ts - Client auth & guards · Acquires identity and protects routes.
front-end/src/app/auth/auth.service.ts - Payment UI
Backend API
Serverless event-domain API and notifications.
- Event API handlers · Serves registrations, spots, sessions, communications, and event resources.
back-end/src/handlers/registrations.ts - Event domain models · Persistence-facing shapes for event aggregates.
back-end/src/models/session.model.ts - Swagger contract
back-end/swagger.yaml - Email notifications · Delivers registration, assignment, release, transfer, and invoice emails.
back-end/src/handlers/sesNotifications.ts
AWS platform
CDK-defined hosting and external-service boundaries.
- CDK deployment entry · Composes environment-specific infrastructure stacks.
back-end/deploy/main.ts - API hosting
back-end/deploy/api-stack.ts - Cognito identity
back-end/deploy/cognito-stack.ts - SES email
back-end/deploy/ses-stack.ts - Static frontend delivery
back-end/deploy/front-end-stack.ts - Media & maps · Provides media storage/delivery and map-related services.
back-end/deploy/media-stack.ts
Delivery & operations
Native packaging and standalone data processing.
- Android & iOS hosts · Packages the shared web app for mobile distribution.
front-end/capacitor.config.ts - Session feedback script · Standalone session-feedback processing.
scripts/src/sessionFeedback.ts
Connections 20
- SPA entry → App shell & router: bootstraps
- App shell & router → Client auth & guards: applies guards
- App shell & router → Event feature services: activates features
- Management routes → Client auth & guards: requires privileged access
- Event feature services → Event API handlers: calls event API
- Payment UI → Event API handlers: uses payment flow
- Client auth & guards → Cognito identity: authenticates with
- Event API handlers → Event domain models: uses
- Event API handlers → Swagger contract: publishes
- Event API handlers → Email notifications: triggers registration updates
- Email notifications → SES email: sends through
- CDK deployment entry → API hosting: deploys
- CDK deployment entry → Cognito identity: deploys
- CDK deployment entry → SES email: deploys
- CDK deployment entry → Static frontend delivery: deploys
- CDK deployment entry → Media & maps: deploys
- API hosting → Event API handlers: runs
- Static frontend delivery → SPA entry: serves
- Android & iOS hosts → SPA entry: packages
- Session feedback script → Event API handlers: operates on event data