GithubHelp home page GithubHelp logo

myklclason / jan-social Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 1.32 MB

Social media app for a Rails code challenge.

Home Page: https://jan-social-clason.herokuapp.com/

Ruby 61.69% JavaScript 0.84% CSS 3.20% HTML 33.63% CoffeeScript 0.64%

jan-social's Introduction

Complete Ruby on Rails Developer Course, Code Challange 2016 project.

www.mashrurhossain.com/blog/code-challenge-january-2016

Project Requirements (taken from the above link):

PROJECT for January 21 - 31, 2016: (all submissions must be made by EOD January 31, post as late as possible without going past the due date)

  • Build a social media app where users can sign-up, log in and log out, have a profile page (including a profile image - use gravatar - easiest), can create posts (150 characters maximum..ahem!), can add images to posts (this is optional, won’t lose points for not implementing this since it requires AWS or other prod hosting), can like/dislike posts (but only once per post)

  • There should be a users listing page, users can follow other users, and a list of who they are following should be displayed in some way in their profile page, perhaps have a total number listed on the profile page and when clicked takes it to the following users page

  • Home page display for each user should have a dashboard, which displays all the posts of users the user is following - latest posts on top, users should have the ability to like/dislike posts (only once) from this display

  • You can use your own authentication system, or devise, but no email authentication necessary (no bonus points for email authentication)

  • There will be points for styling and display, controller restrictions and general good practices like using partials, DRY code etc.

  • There should be a web app home page that displays when you go to the webpage and are not logged in, this should switch to the users profile page after logging in

Bonus points - Implement search box for users so instead of looking at users listing page you can search for users and add them to your list from there (hint: finance tracker app has this), styling can be as bland as craigslist (I would not recommend this) or as good as you can make it, my recommendation - bootstrap or foundation framework if you’re familiar with it. Who can qualify: If you are enrolled in the Complete Ruby on Rails Developer course and understand 50% of the requirements above, you qualify (no sign-ups necessary, just ensure you use your Udemy username in the google submission doc and I can verify that you are enrolled). Take your best shot, don’t bail out if your app’s not complete or doesn’t have all the features or you think it’s not good enough, as long as it works to some degree it’s good. Think about it on a 100 scale, try to get as close to 100 as you can. Where do you submit your project: Click in this google doc to submit your code. Add your user name, your Herokuapp URL, your Github URL and any comments. Don’t add email address or any personal info here since everyone can view/edit this document. Rules:

  • You can collaborate with others but you must submit individual projects! if you choose to use the discussion area to find and communicate with your partner please put within parenthesis on top of the post or on the subject of the post (“This is relating to the code challenge”), and I will promptly tag that post with some random comment and not respond to the question and leave it to other students to respond

  • IMPORTANT: You cannot ask me or Evgeny for help with this competition or any code related to it

  • You cannot copy popular tutorials, but can definitely take a look at them for how-to’s.

  • You cannot ask me or Evgeny for help - did I already say this? this is very important, I will generally avoid non-coursework related questions which will have the (“This is relating to the code challenge”) in the body of the post, but I might answer general questions/offer advice

  • You can help others if you choose - is somewhat counter-intuitive given it’s a competition but I highly encourage this, karma is an funny thing

  • Please don’t do things that you wouldn’t do if you knew others were looking at what you were doing.…does that make sense? (example - don’t delete someone else’s repo name from the submission document, that’s not fair play and might cause the owner of the deleted repo name to drink extra coffee and get stressed out, we don’t want that)

  • Don’t forget to Enjoy!

Good luck!

  • Mashrur

jan-social's People

Contributors

dependabot[bot] avatar myklclason avatar

Watchers

 avatar  avatar

jan-social's Issues

User follow functionality

Table format should be:

user => user (current user)
follow => user (followed user)

All fields must be present and a unique in regards to user/follow combination.

Users sidebar: Followed users

Setup the user's sidebar to show followed users.

  • Add the toggle between followed/following (implement via scoping?)
  • Add the table for displaying the followed users

Followers and followed by index pages

Add index pages for followers and followed by.

  • Followers: `/followers/[user-id]' (need route, view, controller)
  • Followed by: 'followed-by/[user-id]` (need route, view, controller)
  • Include counts #14

This is needed more for the mobile version, but may be used by the user sidebar (left side) too.

Fix followed counter

Counter isn't displaying votes right. Unclear as to why. May need to use a fresh DB.

Splash page

When going to the home page:

Not logged in: Splash page
Logged in: User's profile page.

Currently all pages require a logged in user.

  • Create splash page
  • Setup login status based redirect
  • Allow non-logged in user on the splash page.
  • Remove sidebars from splash page (no login, so need)

Gravitar profile images

Use gravitar to add profile images.

  • Add gravitar_for application-level helper method
  • Add gravitar display to user profile page

User sidebar: Following users

Setup the user sidebar to be able to be able to display users that are following the current user.

  • Add the table for displaying the following users

Heroku app is slow

App works fine in development, but it's too slow with apparent full pages reloads in production.

Buttons should be sending info to server, then updating partial with a response. May need to use caching or something to speed things up.

Like/dislike functionality

Format should be:

user => user
message => message
likes => Boolean (True for like, false for dislike)

All fields must be present, and must be unique for a given user/message.

User Profile: Followers and followed

On the profile page there should be the number of followers and followed. This number should have links to /users/[id]/followers and /users/[id]/following. Will just add to next to the message listing.

  • #12 Followers and following by issue
  • Will use #32 instead

Edit: Add Followers to user sidebar.

Vote counting helper functions

Voting (like/dislike/follow) should include the counts next to them.

Format?
@post.votes_for.size

  • Likes
  • Dislikes
  • Overall (Likes + dislikes)
  • Followers
  • Following

sidebar controller(s)

Finish setup for the sidebar controller(s).

  • Sidebars should be hidden for smaller screens.

Seed voting data

Voting data should be seeded so no multiple new accounts don't need to be created.

Also add a couple more users to bring it up to 5. Users should have longer names

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.