loader image
Drag
Contact Info

Activity Recommendation Service (APT)

Description:
For the APT (Advanced Programming Techniques) course, I developed a microservice-based program that offers activity recommendations tailored to the user’s current mood. Users can securely log in via Google Authentication and access personalized activity suggestions. The program is built using modern technologies and tools, with robust security and scalability ensured through a gateway and Kubernetes orchestration.

A detailed demo of the program is available on GitHub and a walkthrough video can be found on YouTube.


Key Features

User Features:

  • Mood Input: Users can select their current mood, and the service suggests activities aligned with that mood.
  • Activity Recommendations: Activities are automatically retrieved and recommended using a microservice architecture that connects mood and activity data.
  • Google Authentication: Secure login system integrated with Google OAuth for user authentication.

Backend Architecture:

  • Microservices: Separate services for mood and activity data, ensuring modularity and scalability.
  • Gateway Security: An API gateway secures all microservice communication and external access.
  • Dockerized Environment: The application is containerized using Docker, enabling consistent and portable deployments.

Front-End Features:

  • React Interface: A responsive and intuitive front-end built with React for mood selection and activity browsing.
  • Real-Time Updates: Seamless interaction between the front-end and back-end using APIs.

Deployment and Orchestration:

  • GitHub Integration: Utilized GitHub Flows for continuous integration and deployment.
  • Docker Compose & Hub: All services are containerized with images stored on Docker Hub for easy distribution.
  • Kubernetes Orchestration: Kubernetes files for deployment and service scaling across clusters.

Technologies Used

  • Backend: Node.js for microservices, secured by an API Gateway.
  • Frontend: React for a user-friendly interface.
  • Authentication: Google OAuth for secure access.
  • Containerization: Docker Compose and Docker Hub for application packaging and image management.
  • Orchestration: Kubernetes for scaling and managing the services.
  • CI/CD: GitHub Actions for automated testing and deployment workflows.

Learning Outcomes

  • Mastered the development of microservice-based architectures and their deployment in a Kubernetes environment.
  • Improved understanding of secure API management with a gateway and OAuth authentication.
  • Gained hands-on experience in Docker for containerization and GitHub Flows for automated CI/CD pipelines.
  • Built an engaging front-end with React, improving my skills in user interface design and API integration.

Project Links

  • GitHub Repository: View Code
  • YouTube Video Demo:


Conclusion

This project showcases my ability to design and implement a secure, scalable, and user-centric application using modern software development practices. The integration of Google Authentication, Docker, and Kubernetes highlights my expertise in building robust solutions that cater to real-world requirements.

en_GB