Project
R_AWS - Simple
PhotoSite in Ruby on Rails deploying to AWS.
RoR application
200 points
Due dates - March 1 start of class
INDIVIDUAL or GROUP Work - YOUR choice to work individually or in a group but, the requirements are the same.
Project Description & Requirements
Goals of this Project
You will create a Ruby on Rails application that implements only a LITTLE of a Photo Sharing site --specfically the comments section--with data that you pre-enter into a SQL-Lite database. This is NOT typically what you would do --as you would use a real Database solution and the actual photo comments would be generated by users not "manually" entered into your database as an administrator.
What this Project will Teach you
What this project will teach you is the basics of Ruby on Rails and how to deploy such an application to AWS EC2 (IaaS). You will also setup an S3 bucket and store your photo files there which are then referenced inside your database entries appropriately.
What this Project will NOT teach your (or how this is only a partial implementation)
It will not teach you the use of real cloudl database. Nor will it teach you maintenance of a real deployed IaaS system.
Ruby on Rails Application
Application Endpoints:
Your Ruby on Rails Application will have ONLY the following 2 endpoings (URL/URIs) . Your application must store all the data inside of a database AND you must store the Photo files in AWS S3 services.
The first URL is /users/index
When this URL is referenced your application must return a Web page that displays a list of all users in the database. The user names must be links: clicking on a user name displays the photos for that user, as described below
- TIP: I have shown you some steps to get you started in Ruby on Rails --but, it is your responsibility to complete this on your own, including looking up any changes from what is shown. Note: I have shown the use of the built-in SQLite database --if you wish to use a different databse (check with me first for approval) that is fine but, I am not instructing you or providing tips on this step by step but, there are many online tutorials.
The second URL is /photos/index/id
The second URL supported by your application has the form /photos/index/id, where id is the database identifier for a particular user. When this URL is referenced your application must return a web page displaying all of the photos belonging to that user. For each photo you must display the photo itself, the creation time for the photo, and all of the comments for that photo. For each comment you must display the time when the comment was created, the name of the user who created the comment, and the text of the comment. The creator for each __comment should be a link that can be clicked to switch to the photos page for that user.
Note regarding Formatting/Style of out Output
- Although you don't need to spend a lot of time on the appearance of the pages you generate, they should be neat and understandable. They should have meaningful titles, and the information layout should be clean (e.g., it should be clear which photo each comment applies to). Use the personalized layout you created for the last project.
Documentation and Code Versioning
- You must create a Github repository where you will host your code AND where you will fully document your poject progress and information in the github's wiki (see below)
Database & File Storage
- You can use the simple SQLite as demoed in the tips page or you can use one of AWS database offerings. That decision is your, but, I will not be giving you step by step instructions on AWS database.
- You must store the images in an AWS S3 bucket rather than in the local machine (tips page shows it storing photos locally -- do not do that!)
AWS EC2 + S3 for photo storage
Now once you have your Ruby on Rais tested out locally (my recommendation) it is time to deploy it to AWS EC2 and you must make sure you are using S3 to store the photos used in this project.
SetupI am NOT GOING to tell you step by step how to do perform the AWS +S3 portion of this project. In fact it is part of this project that you document your progress and how you were able to accomplish this.
SPECIAL ISSUE 1 You must SOLVE---what happens when an instance stops running
SPECIAL ISSUE 2 SOLVE---what happens when reboot instance& what can you do?
Documentation + DemoOn your project's github wiki, you must have the following wiki pages
|
Evaluation Guidelines
-
100 points for Ruby on Rails application
- 30 points for MVC for second URL is /photos/index/id
- 30 points for MVC for first URL is /users/index
- 40 points for rest of app including DataMigrations and database setup
-
20 points for hosting photos on S3
-
70 points for successful deployment to AWSw/databse& wiki (see above )
Deliverables (EACH member of the group MUST turn in separately --even though it is the same content) -- see due dates at top
- GitHub with Code and wiki Documentation and YouTube Presentation. (AND demonstrate in class if/ascalled upon)
- You will create a posting to BB->Projects->Project R_AWS. Give the URL to your PUBLIC GitHub repository.
- You will create a posting to BB->Projects->Project R_AWS. Give the URL to your PUBLIC GitHub repository.
- Give demonstration of system working for peers and instructor as requested.