52

Area ๐Ÿ› ๏ธ

Area is a school project from the third year at Epitech, aimed at creating an automation platform similar to IFTTT and/or Zapier. It features integration with multiple services such as GitHub, Asana, Miro, Linkedin, Twitter, and Trello.

Area is a third-year school project from Epitech ๐ŸŽ“ aimed at creating an automation platform akin to IFTTT and/or Zapier. This robust platform can carry out 242 actions ๐Ÿ’ผ and 4 reactions ๐ŸŽ‰ with popular services like GitHub, Asana, Miro, Linkedin, Twitter, and Trello.

๐ŸŒŸ Features

  • Web and Mobile Applications ๐Ÿ“ฑ๐Ÿ’ป: The project offers both a web and mobile experience.
  • Multiple Service Integrations ๐Ÿ”„: Seamlessly integrate and automate tasks across platforms like Github, Asana, Miro, Linkedin, Twitter, and Trello.
  • Micro-Service Architecture ๐Ÿ“ก: The backend champions a micro-services design, bolstering scalability and maintainability.
  • Two-Factor Authentication ๐Ÿ”: Users have the convenience of authenticating via their email or Google.

๐Ÿ› ๏ธ Built with

Our choice of technologies was based on performance, scalability, and the ability to integrate seamlessly with a range of services.

Front End:

  • React: Chosen for its component-based architecture, making the UI highly modular and efficient.
  • TypeScript: Enhances code quality and understandability, by adding static types.
  • Chakra: Provides a set of modular and accessible UI components.
  • Material UI: For a sleek, modern design and comprehensive UI components.

Mobile:

  • Dart: The foundation for Flutter, offering efficient optimization and developer-friendly tools.
  • Flutter: Allows cross-platform development, ensuring the application works fluidly on both Android and iOS.

Back End:

  • Micro-services architecture: Chosen for its scalability and ease of maintenance.
  • Go: For its performance and efficiency in building scalable and concurrent services.
  • TypeScript: Provides type safety, enhancing the reliability of the backend services.
  • JavaScript: Flexible and widely-used, JavaScript powers various service integrations.

Architecture Advantages and Disadvantages

โœ… Advantages:

  • Scalability ๐Ÿ“ˆ
  • Maintainability ๐Ÿ”ง
  • Independence of components ๐Ÿงฉ

โŒ Disadvantages:

  • Comprehensive setup required ๐Ÿ“š
  • Intricate architecture design ๐Ÿง 

๐Ÿงช Unit Tests and CI/CD

Front end:

  • Cypress
  • Jest

Back end:

  • Postman

Agile Methods and Organization ๐ŸŒ€

  1. Issue system in motion ๐Ÿ“
  2. One branch per issue ๐ŸŒฒ
  3. Pull request for each branch ๐Ÿ”€
  4. At least 3 people review each PR ๐Ÿง
  5. PR is transitioned to production upon approval ๐Ÿš€
  6. Close the PR and the related issue once settled โœ…

๐Ÿ” Authentication System

  • Using an email address ๐Ÿ“ง
  • Leveraging Google ๐ŸŒ

The venture is orchestrated with Docker and seeks to exemplify automations such as: "If a GitHub branch sprouts ๐ŸŒฑ, then dispatch a tweet ๐Ÿฆ."

๐ŸŽจ Application Illustrations

Projet Area Projet Area Projet Area Projet Area

๐Ÿค Team Members

  • Samuel Shemtov
  • Enzo Alaimo
  • William Karkegi
  • Kan Bouldoires
  • Quentin Caniou