CineShare logo

CineShare

Introduction

CineShare est un projet personnel axé sur l'exploration des technologies web modernes et de l'infrastructure cloud. Cette expérience d'apprentissage m'a permis d'acquérir des connaissances précieuses pour de futures applications concrètes.

La plateforme permet aux utilisateurs de partager et de découvrir des recommandations de films et de séries au sein d'une communauté sociale.

Technologies

Tout au long de ce projet, j'ai exploré une variété de technologies, aussi bien frontend que backend, afin de construire une application full-stack.

Angular icon
Spring Boot icon
MySQL icon
AWS icon
OpenAI icon

Frontend

Angular CLI, HTML, CSS, TypeScript

Ce projet Angular utilise les modules de base d'Angular, NgRx pour la gestion de l'état et le rendu côté serveur via Express. Il intègre Bootstrap et Tailwind CSS pour la mise en forme, ainsi que DaisyUI pour les composants d'interface.

CineShare main page

Page principale

Backend

Spring Boot, Java

Le backend est propulsé par Spring Boot, en s'appuyant sur plusieurs starters tels que Data JPA pour l'accès à la base de données, Spring Security pour l'authentification et Spring MVC avec un serveur Tomcat embarqué. Il intègre MySQL pour la connectivité à la base de données, Lombok pour réduire le code répétitif, JJWT pour la gestion des JWT, Springdoc OpenAPI pour la documentation de l'API et Actuator pour la supervision.

Cybersécurité

Les fonctionnalités de sécurité sont actuellement en cours de développement. Le frontend utilise CryptoJS pour chiffrer les données via le chiffrement AES, tandis que le backend implémente Spring Security pour une authentification basée sur les JWT. Le JWT filtre les requêtes non autorisées, et tous les mots de passe sont chiffrés à la fois en transit et au repos dans la base de données. De plus, un certificat SSL est en place pour le HTTPS.

Register page showing security implementation

Inscription des utilisateurs avec mesures de sécurité

Infrastructure cloud

Travailler avec AWS a été une nouvelle expérience pour moi, allant au-delà de l'hébergement de simples sites statiques via GitHub Pages. J'utilise désormais Amplify pour l'hébergement du frontend, Elastic Beanstalk pour le déploiement du backend, RDS pour la gestion de la base de données et Route 53 pour la gestion du domaine. Ce projet m'a fait découvrir les vastes possibilités du cloud computing, en particulier l'idée de construire des applications serverless.

AWS technologies diagram

Architecture des services AWS

Outils d'IA

GitHub Copilot et ChatGPT ont été des compagnons précieux tout au long de ce projet. Copilot m'a aidé pour les questions liées au code et les suggestions contextuelles, tandis que ChatGPT s'est révélé utile pour des questions plus larges, comme le choix des solutions cloud appropriées.

GitHub Copilot interface

Conclusion

Ce projet m'a permis de développer une application full-stack, couvrant divers aspects, du frontend au backend, en passant par la sécurité et l'infrastructure cloud.

Mon prochain projet explorera les applications web serverless, les bases de données NoSQL et les API d'IA.

CineShare n'est plus disponible.

Merci de votre lecture,

Julio Macias Gonzalez

Me contacter