Here is your target:
https://photogram-final.matchthetarget.com/
The starting point of this project is a blank Rails application. You need to create all the tables and models yourself!
We domain modeled this application in first two weeks of class, and used the same database structure in photogram-gui and photogram-signin; here’s the Entity Relationship Diagram (ERD):
All tables should have the usual created_at
and updated_at
columns
If you add these columns exactly, then you can run the rails sample_data
Rake task to add dummy data to your database tables like with the homeworks.
You can use the model
generator to add your tables, or you can use the draft_generators
to add the tables and give yourself a big head start on routes, controllers, actions, and view templates.
You should also consider adding association accessor methods to your models to make your job easier. Validations to protect data integrity are important as well.
When a FollowRequest
is created you need to check if the recipient of the request is a private User. If they are private, the status
column of the FollowRequest
should be set to "pending"
. If they are not private the status
should be set to "accepted"
.
If a user has a private account, all "pending"
received FollowRequests
should appear on their details page with the option to accept. Accepting should change the status
from "pending"
to "accepted"
, while rejecting should set the status
to "rejected"
.
Clicking the Feed link should show all of the photos from every person that the user is following. For example, if I am following Jelani, I should see all of Jelani’s posted photos.
Clicking the Discovery link should show all of the photos liked by the people the user is following. For example, if I am following Jelani and he has liked seven different photos, all of those photos should be visible in my discovery section.
In the target, users add images by uploading files instead of entering image URLs into a text field. Please see the chapter on images uploads for more information.