LOADING

0 %
Gregory Paul Rothstein
Software and Web Developer
IT Specialist
  • Bootstrap
  • MaterialUI
  • TailwindCSS
  • Angular
  • React
  • NextJS
  • Laravel
  • Wordpress
  • Git workflow knowledge
  • Design patterns knowledge
  • CI/CD Knowledge
  • Automation knowledge
  • Containers
  • Docker
  • Kubernetes
  • Python
  • Bash scripting

Chasing Good

Automation, Deployment, Design, Web Project, WordPress Integration

Project details

Situation

A non-profit organization sought a digital platform to recognize and reward individuals for their acts of kindness. The platform would enable users to submit stories of good deeds, which would then be evaluated by a panel of judges.

Task

I was tasked with designing, developing, and deploying a web application that would:

  • Facilitate the submission of stories
  • Enable judges to review and rate submissions
  • Display award winners and their stories
Action

To address the client's needs, I employed a robust technology stack:

  • Frontend: Angular, a powerful JavaScript framework, was utilized to create a dynamic and user-friendly interface.
  • Backend: AWS Amplify was selected to streamline the development and deployment process. It leveraged DynamoDB for efficient data storage and AppSync/GraphQL for seamless data fetching and manipulation.

The development and deployment process involved the following key steps:

  1. Setup and Planning: I configured my development environment with Angular and meticulously planned the project's architecture.
  2. Backend Deployment: I successfully deployed the backend to AWS Amplify, taking advantage of its serverless capabilities.
  3. Frontend Deployment: The frontend application was deployed to Amplify, ensuring seamless integration with the backend.
  4. Continuous Improvement: Over time, I refined the deployment strategy by transitioning to a containerized approach using Docker and AWS Lightsail Container Service. This optimization significantly improved scalability and flexibility.
  5. Testing and Refinement: To ensure a flawless user experience, I collaborated with the client to organize a test event involving a research group. Feedback from this testing phase was invaluable in identifying and addressing potential issues.
  6. Production Deployment: Once the application was thoroughly tested and refined, I deployed it to the production domain, making it accessible to the public.
  7. Ongoing Maintenance: To maintain the platform's optimal performance and security, I regularly perform maintenance tasks, including bug fixes and feature enhancements.
Result

The successful deployment of the platform resulted in a significant impact:

  • Increased Community Engagement: The platform fostered a sense of community and encouraged individuals to share their acts of kindness.
  • Recognition of Good Deeds: The platform effectively recognized and honored individuals who made a positive difference in their communities.
  • Enhanced Organizational Reputation: The platform elevated the organization's reputation as a leader in promoting social good.
Lessons Learned and Future Enhancements

Through this project, I gained valuable insights into the importance of effective content management and efficient deployment strategies. I learned that incorporating a robust content management system (CMS) would significantly simplify content updates and reduce the need for frequent deployments.

To further enhance the platform, I plan to refactor the backend to utilize the WordPress REST API. This integration will empower the client to independently manage content, eliminating the need for developer intervention for minor content changes.

Technical updates

To enhance the application's flexibility and maintainability, a significant refactoring was undertaken. This involved a strategic shift in the technology stack and deployment strategy.

Frontend Refactoring:

The Angular frontend was retained as the core technology, but a dedicated Angular service was introduced to fetch and manage content from a WordPress website hosted on a subdomain. By leveraging the WordPress REST API, content updates can now be made directly to the WordPress site, eliminating the need for frequent redeployments of the Angular application.

Backend Refactoring and Deployment:

A multi-tiered backend architecture was implemented to optimize performance and scalability:

  • Laravel Application: A Laravel application was developed to handle specific backend functionalities and deployed using Laravel Vapor on AWS.
  • Node.js Server: A Node.js server was created to serve as the primary backend API, responsible for handling API requests, database interactions, and business logic.
  • Containerization and Deployment: Both the Angular application and the Node.js server were containerized using Docker and deployed to AWS Lightsail Container Service. This approach ensures efficient resource utilization and simplified deployment processes.

Automated Build and Deployment:

To streamline the deployment process, a GitHub Actions workflow was established to orchestrate the build and deployment of the various components. This workflow automatically builds the Angular, Laravel, and Node.js applications, creates Docker images, and deploys them to AWS ECR.

By adopting this refactored architecture, the application has become more modular, scalable, and maintainable. The ability to update content directly on the WordPress site and the automated deployment process significantly reduce development and deployment time.

Ready to chat?

Let's chat!
Contact Me for Details
© 2024 All Rights Reserved.
Email: me@gregorypaulrothstein.dev