The project is a web application for storing and managing photos and videos, similar to the gallery function on mobile devices. The application uses AWS cloud services and follows a serverless architecture.
- Can register to the system. If they already have an account, they can log in to the system.
- A user who has successfully logged into the system. They can upload new content to the system and modify or delete existing content. They can manage their photo albums, grant access to their content to another user, revoke granted access, and download the uploaded content locally.
- Provides a graphical interface through which users access the system's functionalities.
- A serverless application that contains the entire business logic of the system.
- Users can register themselves by providing personal details including name, surname, address, email, and password.
- Users are able to log into the system using their email and password.
- Users can upload various types of content along with additional information.
- Users can view their own content.
- Users can alter content they own.
- Users are able to delete their own content.
- Users can create new albums and move or add content to them.
- Users can delete albums (excluding the initial one).
- Users can share individual pieces of content or entire albums with other users, granting read-only access.
- Users can revoke access rights they previously granted to shared content.
- Users can download content they have access to, whether they own it or have been granted shared access.
- The system facilitates a family member registration process using appropriate AWS services.
- The system utilizes a serverless architecture model, leveraging appropriate AWS services.
- The system separately stores content and associated additional information.
- The system employs Infrastructure as Code tools for instantiation and configuration of required services.
- The system enables asynchronous communication between its components, as necessary.
- The system includes an API gateway, which offers a REST API for client-server communication.
- The system sends notifications to users when content is successfully stored, modified, or deleted.
- The system tackles potential inconsistencies arising from storing content and additional information separately.
This project was developed for the purposes of the course Cloud Computing.
- Eva Janković
- Miroslav Zarić
