Fakebook, as the name suggests, is a clone of the popular social media website Facebook. It has core features of facebook implemented, namely posting, liking, commenting, and friendships. It also includes several real-time features, such as private messaging, chatrooms, as well as online statuses. Styling is done via Sass and Bootstrap.
Live App (Please be patient with the intial loading of the site, the heroku app is likely undergoing a cold start)
Login and registration of accounts are both handled by devise. Optionally, users are given the choice of logging into Fakebook via a Facebook account. All other features of Fakebook are only accessible through a signed in account.
Users are able to make their own posts, which have basic CRUD (Create, Read, Update, Delete) functionality. Additionally, users have the option of uploading an image for a post.
Comments and likes allow other users to interact with existing posts. Both posts and comments can be liked by a user.
Friendships are a central feature of Facebook. Users can have friendships with other users through friend requests. On the 'Manage Friends' page, there is a search bar present which allows a user to search for other users by name. New friendships instantiate a private chat that allows two friends to privately communicate with one another.
Allows for real-time messaging between two friends on the website. Conversation history will persist after a friendship is terminated, however messaging will be disabled between the two users.
Clubs are a feature that grants access to a select number of users access, through memberships. Each have their own post wall, which can only be viewed and posted to by their own members. Users can also create their own clubs, and set their own member capacity limit. For particularly annoying users, club owners have the ability to block members from their club, which denies them access to all club posts as well as the club chatroom.
Chatroom is a designated space only members of a club can view and post messages to. Like private chat, club members are able to send and recieve incoming and outgoing messages in real-time, without the need to refresh the page.
Fakebook users' online statuses are tracked via a database and channel broadcasts. On select pages, a user will be able to see which friends are currently online/offline via a green/red circle icon. This is immediately updated when the online status of a user changes.
- rails-actioncable
- rails-activestorage
- rails-ujs
- webpacker
- turbolinks
- redis
- devise
- omniauth-facebook
- omniauth-rails_csrf_protection
- letter_opener
- faker
- cloudinary
- figaro
This project is the final capstone project of the Rails section of The Odin Project, an open source web development course that teaches you full stack web development.