It is required to build a simple photo sharing application using NodeJS, and fully utilizes different amazon cloud services. Below is a list of the requirements:
1) The application shall be hosted on AWS EC2 and DynamoDB& S3 shall be used for data storage (MongoDB not to be used on EC2)
** DynamoDB is to be used to store the directory path for the photos, which is to be stored on AWS S3.
2) NodeJS frame: ExpressJS or Koa (preferred ExpressJS)
3) User authentication can be done using amazon cognito or any other JS library ( Security is not my main concern in this project)
4) An extremely simple client UI is to be built just to test the functionality of the server. The frontend part of this project is not essential, and used only for testing the server. So, it's not required to built sophisticated UI.
How the application should works:
1) The app should allow new users to fill a simple signup form (basically name, e-mail and password are enough).
2) Once a user login to his account; he is able to have an option to upload new photos from his own computer or through a photo URL.
3) A user can also have an access to all photos he/ she previously uploaded to his account. (You can design it that he can redownload any of these upload photos OR it's fine to just view it in the browser)
4) A user can 'follow' or 'add friend' to any other user that have a registered account on the server. You can do this using of the following two option
** Directly add or follow another users by knowing their e-mail ONLY (E-mail must be known to add another user)
OR -not both-
** search for users by their first and last names/perhaps e-mail is better too. The search results should uniquely identify the user being searched for. (Assume that no two users can have the same first and last name OR the same e-mail)
5) A user can view or/download the photos of any of their friends.
*** You must clearly comment your code, specially if you're using something that might not be understood easily by other developers
*** The main purpose of this project is to test Amazon web service functionality, and not to build an application that will be used on a production level.
*** Solid and professional coding skills are more valued than building a complicated application with a lot of features.
*** This project is needed before the end of November.
*** If you found yourself bidding more than $200USD, then probably you're overestimating the work need for this project
*** Mobile developer are also welcome to submit their ideas regarding replacing the client webUI with a mobile application.
*** Photos should also be allowed to be shared on some social media platform like Facebook or twitter.
*** Commenting your implemented code is very important.