- This application is online at: http://34.67.99.174:8080/
- Vue.js - For Front-end
- Flask - For back-end (REST API)
- AWS S3 - For storage
- AWS Cognito - For auth
- AWS Amplify - Helps integrate Vue.js with AWS Cognito and AWS S3
- AWS EC2 - Back-end hosting
- Firebase Cloud Firestore - Database
- GCP Compute Engine - Front-end hosting
This application includes the following features:
- Upload photos
- Like photos
- Add comments to photos
- Approve or reject photos (only for admin user)
Only the admin user (credentials provided via e-mail) can approve or reject uploaded photos. Furthermore, photos uploaded by this user do not need approval to be visible to everyone
If you want access admin user, use the credentials provided via email. I also sent a test user.
If you want to create your own user, you can do it by clicking on the sign up button.
Click on the upload button and select an image on file picker
If you have not liked a photo yet, the heart button will be white. You can click on it to like a photo.
If you already like a photo, the heart button will be red. You can click on it to unlike button.
The like counter is updated on every action.
Use the text input to write your comment, then click on the publish button to submit your comment.
Click on the green button to approve a photo or on the red button to reject a photo.
If you rejected a photo, you still can change your mind and turn it online by clicking on the green button.
Only the admin user (credentials provided via e-mail) can approve or reject uploaded photos. Furthermore, photos uploaded by this user do not need approval to be visible to everyone
- Front-end:
In the root folder of the project:
cd friends-gallery
npm install
npm run serve
- Back-end:
In the root folder of the project:
cd backend/src
pip install -r requirements.txt
pip install pyopenssl
pip install testresources
python server.py
Note: Edit the end of server.py file to alternate between HTTP and HTTPS protocols, or the server port. HTTPS protocol requires a SSL certificate. It's currently set to HTTP.