Production Collaboration & Project Management Platform (AWS)
A modern, secure collaboration and project management platform deployed on AWS using a production-ready cloud architecture
CodeConnect is a comprehensive web-based platform designed to streamline team collaboration, project management, and communication. It enables teams and organizations to manage projects, collaborate in real time, and handle secure transactions using modern web and cloud technologies.
This project is deployed in a real production environment on AWS, demonstrating hands-on experience with cloud infrastructure, security, and deployment best practices.
- 🔐 Secure Authentication – Role-based access control (RBAC)
- 📋 Project Management – Create, track, and manage projects
- 👥 Team Collaboration – Assign tasks and monitor progress
- 💬 Communication Hub – Integrated notifications and messaging
- 📊 Analytics Dashboard – Insights into project and team performance
- 💳 Payment Integration – Stripe payment processing
- 📱 Responsive Design – Works across desktop and mobile devices
- 🎨 Modern UI/UX – Built with Tailwind CSS and Vue.js
| Component | Technology |
|---|---|
| Framework | Laravel 12 |
| Language | PHP 8.3 |
| Database | PostgreSQL |
| ORM | Eloquent |
| Cache | Database cache |
| Sessions | Database-backed sessions |
| Component | Technology |
|---|---|
| Framework | Vue.js 3 |
| Routing & Views | Inertia.js |
| Styling | Tailwind CSS |
| Build Tool | Vite |
| Service | Provider |
|---|---|
| Payment Gateway | Stripe |
| Mail Driver | Log (configurable) |
| Storage | Local filesystem (S3 planned) |
CodeConnect is deployed on Amazon Web Services (AWS) using a production-style architecture focused on security, reliability, and scalability.
- OS: Ubuntu Linux
- Web Server: Nginx (reverse proxy)
- Application: PHP-FPM running Laravel
- Database: Managed relational database
- Access: Private (not publicly exposed)
- Database access restricted to EC2 only
- Port-based security rules
- Secure key-based access to EC2
- Public Access: Users access the application via the internet
- Application Layer: Application runs on an EC2 instance with Nginx and PHP-FPM
- Database Layer: PostgreSQL database is hosted on Amazon RDS
- Security: Database is not publicly accessible
- Connectivity: EC2 communicates with RDS using Security Group-to-Security Group rules
- Configuration: Environment variables managed securely using
.env
-
Infrastructure Setup
- Provisioned EC2 instance using Ubuntu AMI
- Installed Nginx, PHP 8.3, Composer, Node.js, and required extensions
-
Application Deployment
- Deployed Laravel application via Git
- Executed Laravel migrations in production
- Configured permissions for logs and cache directories
-
Database Configuration
- Created PostgreSQL database on Amazon RDS
- Configured Security Groups for private database access
- Connected Laravel to RDS using environment variables
-
Production Optimization
- Production configuration cached
| Component | Status |
|---|---|
| Application | ✅ Running in production |
| Database Connectivity | ✅ Secure EC2 ↔ RDS connection |
| Database Setup | ✅ Migrations completed |
| Configuration | ✅ Production config cached |
- Security: HTTPS with SSL (Certbot)
- Storage: Amazon S3 for file uploads
- Networking: Custom VPC with public and private subnets
- Scalability: Load balancer and auto scaling
- Monitoring: CloudWatch integration
Screenshots are available in the docs/screenshots/ directory:
- 🖥️ EC2 instance running
- 🗄️ RDS database available
- 🔒 RDS security group rules (SG-to-SG)
- 🌐 Live application in browser
This project demonstrates a production-style AWS networking setup.
- Custom VPC (non-default)
- Public subnet for application EC2
- Private subnets across two Availability Zones
- Internet Gateway and route tables
- Private PostgreSQL RDS (no public access)
- Security Group to Security Group access control
- RDS deployed in private subnets only
- Database access restricted to application security group
- Connectivity verified using SSL PostgreSQL client from EC2
📁 Screenshots and diagrams are available in:
docs/project-2-networking/
The application can be started locally using Docker:
docker compose up --build