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 ๐
- Issue system in motion ๐
- One branch per issue ๐ฒ
- Pull request for each branch ๐
- At least 3 people review each PR ๐ง
- PR is transitioned to production upon approval ๐
- 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
๐ค Team Members
- Samuel Shemtov
- Enzo Alaimo
- William Karkegi
- Kan Bouldoires
- Quentin Caniou