This repository contains a collection of applications and infrastructure code for Mexico's AWS Community Day. We're building an integrated app ecosystem that automates badge creation, provides real-time agenda updates, enables digital networking, streamlines sponsor lead capture, and tracks session attendance—all while collecting valuable data for Community Days organizers.
This project implements a user profiles management system for AWS Community Builders. It features:
- GraphQL API: Built with AWS AppSync.
- Serverless Backend: Using AWS Lambda and DynamoDB
- Modern Frontend: React-based UI using Cloudscape Design System
- Observability: Integrated with AWS X-Ray, CloudWatch Metrics, and Powertools
- Infrastructure as Code: Fully defined using AWS CDK with TypeScript
- Multi-Environment Support: Automated environment management for development, staging, and production
The system allows event organizers to:
- View and manage user profiles
- Track profile access and interactions
- Maintain profile data securely in DynamoDB
- Access the system through a modern, responsive web interface
- Node.js (v18 or later)
- Docker
- AWS CLI configured with appropriate credentials
- AWS CDK CLI installed (
npm install -g aws-cdk) - Git
-
Clone the repository:
git clone <repository-url> cd builders_apps
-
Install dependencies:
npm install
-
Build the project:
npm run build
We follow a strict branch naming convention that integrates with our deployment pipeline. For detailed information, please refer to our Branch Naming Guide.
Example branch names:
feature/#42_add-user-profilebugfix/#17_fix-authenticationhotfix/#23_security-vulnerability
Our deployment process is automated and environment-aware. For detailed information about deployments, please refer to our Deployment Guide.
Quick deployment commands:
npm run deploy # Deploy based on current branch
npm run deploy:destroy # Destroy current environment
npm run deploy:help # Show detailed help messageOnce you create a new branch, you can start developing your changes.
Use the deployment script to deploy your changes to a development environment specifically created for your branch.
npm run deployThis deployment script will create a new environment in AWS, deploy the necessary resources, and make the new environment available at a URL, as well as configuring your local frontend to point to the new environment.
A .env file will be generated in the frontend directory with the correct environment variables for your new environment.
npm run build- Compile TypeScript to JavaScriptnpm run watch- Watch for changes and compilenpm run test- Run unit testsnpm run lint- Run code linting
npm run deploy- Deploy based on current branchnpm run deploy:destroy- Destroy current environmentnpm run deploy:help- Show deployment help message
.
├── bin/ # CDK app entry point
├── lib/ # CDK stack definitions
├── test/ # Test files
├── docs/ # Documentation
├── scripts/ # Deployment and utility scripts
├── frontend/ # React frontend
├── generated/ # Generated GraphQL code
├── lambda/ # Lambda functions
├── vtl/ # VTL templates for AppSync resolvers
├── schema.graphql # GraphQL schema
└── cdk.json # CDK configuration
- Create a new branch following our branch naming convention
- Make your changes
- Submit a pull request
- Ensure CI checks pass
- Get approval from maintainers
The project supports multiple environments:
- Production (
mainbranch) - Staging (
stagingbranch) - Development (feature branches)
Each environment is isolated and managed through our deployment pipeline.
For issues and questions:
- Check existing documentation in the
docs/directory - Create an issue in the repository
- Contact the maintainers
Apache 2.0 - See LICENSE for details.