Investments With Friends is a single-page web application that was inspired by Facebook, and built using Ruby on Rails utilizing React.js/Redux architecture. Investments With Friends allows users to:
- Create an account
- Log in / Log out
- Upload profile/cover photos
- Send, receive, and respond to friend requests
- Create posts on their own page, as well as their friend's
- Comment on posts
The app was built using Ruby on Rails on the back end with a postgreSQL database. Back end structure is RESTful and all the data requests use AJAX and are fulfilled with a JSON API. Associations are used to prefetch data in order to minimize SQL queries to the database.
The front end is built completely in React.js and JavaScript and utilizes React's Redux architecture. React's virtual DOM allows for lightning-quick re-rendering without requiring new pages to be sent from the server.
Investments With Friends uses:
- React.js
- Redux
- BCrypt for authorization
- Paperclip to store user profile images using Amazon Web Services
- figaro to securely store keys and other important data.
- Amazon Web Services for file hosting, and image upload.
User authentication is handled in Rails using BCrypt for password hashing. Passwords entered are not saved to the database, only encrypted hashes. When users log in, the password they provide is rehashed and compared with the original password hash to verify credentials.
Investments With Friends allows users to customize their profiles by uploading personal profile and cover photos.
The News Feed allows users to keep up to date with their friends in real time. The list is populated with the most recent posts, either posted by, or on the user's friends.
Posts allow users to say what's on their mind as well as keep in touch with their friends. Users are able to post status updates on their own pages as well as post on their friend's pages.
Investments With Friends users can respond to posts with their own comments