Are you looking to build a real-world, production-ready full-stack app that uses modern tools like Angular, Node.js, Docker, PostgreSQL, and AWS? Youโve come to the right place. Let me introduce you to the Event Booking App โ a sleek, modular, and scalable application for managing event registrations and sending confirmation emails.
mahmud-r-farhan
/
event-booking
A modern, full-stack Event Registration Application designed for seamless user registration, email notifications, and data management. Built with a robust tech stack, this app is responsive, scalable, and ready for deployment.
๐ Event Registration App
A modern, full-stack Event Registration Application designed for seamless user registration, email notifications, and data management. Built with a robust tech stack, this app is responsive, scalable, and ready for deployment.
โจ Features
-
๐ User-Friendly Registration Form: Built with Angular Material for a sleek, modern UI.
-
๐ค Backend API Integration: Securely sends form data to a Node.js/Express backend.
-
๐ฌ Email Notifications: Sends confirmation emails via Gmail using Nodemailer.
-
๐๏ธ PostgreSQL Database: Stores registration data reliably with Neon.tech or local PostgreSQL.
-
โ Real-Time Feedback: Displays toast messages for form submission success or errors.
-
๐ฑ Responsive Design: Optimized for mobile and desktop devices.
-
๐ Deployment-Ready: Configured for easy deployment on popular platforms, including Docker and AWS.
-
๐งฉ Modular Architecture: Standalone Angular components for easy customization.
๐ฆ Tech Stack
| Layer | Technologies |
|---|---|
| Frontend | Angular, Angular Material |
| Backend | Node.js, Express.js |
| Database | PostgreSQL (Neon.tech |
๐ฏ What is this app?
The Event Registration App is a full-stack web application that allows users to register for events via a responsive form. It handles form submissions, sends confirmation emails, and stores data securely using PostgreSQL.
๐ Tech Stack
| Layer | Tech |
|---|---|
| Frontend | Angular + Angular Material |
| Backend | Node.js + Express.js |
| Database | PostgreSQL (via Neon.tech or RDS) |
| Nodemailer (Gmail SMTP) |
โจ Key Features
โ
Beautiful, responsive registration form
โ
Instant email confirmations via Nodemailer
โ
PostgreSQL integration for data persistence
โ
Docker support for containerized deployment
โ
Full AWS ECS deployment guide using ECR & Fargate
โ
Modular codebase with clean architecture
๐งฑ Project Structure
event-booking/
โโโ backend/ # Node.js API
โ โโโ controllers/
โ โโโ routes/
โ โโโ mailer.js
โ โโโ db.js
โ โโโ server.js
โ โโโ Dockerfile
โโโ frontend/ # Angular App
โ โโโ src/app/
โ โโโ styles.css
โ โโโ index.html
โ โโโ Dockerfile
โโโ docker-compose.yml
โโโ README.md
๐ง Local Setup in 5 Minutes
1. Clone the repo
git clone https://github.com/mahmud-r-farhan/event-booking.git
cd event-booking
2. Set up environment variables
Create a .env file inside /backend:
PORT=5000
DB_URL=your_postgres_connection_string
EMAIL_USER=your_gmail@gmail.com
EMAIL_PASS=your_gmail_app_password
3. Run with Docker Compose
docker-compose up --build
Now visit:
- Frontend: http://localhost:4200
- Backend: http://localhost:5000
๐ณ Containerized Deployment with Docker
Dockerfiles are provided for both backend and frontend. You can build and run containers locally, or push them to AWS ECR for deployment.
docker build -t event-booking-backend ./backend
docker build -t event-booking-frontend ./frontend
โ๏ธ Deploying on AWS (ECS Fargate)
The repo includes a step-by-step guide to deploy the app on AWS:
- Push Docker images to Amazon ECR
- Use AWS ECS (Fargate) to run frontend & backend tasks
- Set up a Load Balancer
- Configure your environment variables
- Connect to PostgreSQL (RDS or Neon.tech)
The guide also includes JSON examples for task definitions, troubleshooting tips, and API integration steps.
๐ฌ Email Confirmation via Gmail
Use Nodemailer + Gmail SMTP to send confirmation emails. Be sure to use an App Password and not your main Gmail password.
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS,
},
});
๐จ Want to Customize?
Change the form fields in:
frontend/src/app/app.component.html
Update backend logic in:
backend/controllers/registerUser.js
Modify email templates in:
backend/mailer.js
๐งช Troubleshooting Tips
- Emails not sending? Double-check your Gmail App Password.
-
Database not connecting? Verify your
DB_URLand access settings. - Frontend can't reach API? Update the frontend API URL to match your backend's public DNS (especially in production).
๐งโ๐ป Contributing
Contributions are welcome!
Fork the repo โ Create a branch โ Submit a PR ๐
โญ Give It a Star
If you like this project or found it helpful, please give it a โญ on GitHub. It motivates others and helps them find it, too!
๐ Links
- ๐ GitHub: mahmud-r-farhan/event-booking
- ๐ฌ Email: support@devplus.fun
Thanks for reading! Let me know if you deploy it or have any cool feature suggestions. ๐
Follow for more! @mahmud-r-farhan who โค React.jsx!
Top comments (0)