Final project for COS 333 Spring 2014
Met to discuss possible project ideas. Landed on a link-sharing website with a social media aspect. The basis for our idea coming from the fact that we like all the links/news/etc. posted on Facebook, but it’s very hard to find again.
Collin wrote and shared a set-up guide with instructions for setting up a Github repository and we all practiced pushing and making pull requests.
Met to discuss the finer points of our project (general layout, database setup) and plans for over spring break. Began writing design document.
Finished up design document on Google Docs. Made a very rough plan for database and front-end design.
Module installation and dependencies worked on.
node_modules directory has not been committed. To install dependencies, simply run
npm install. We ensure that all modules and submodules have interoperable versions using
npm-shrinkwrap.json. To learn more about this system, read this short article.
npm-shrinkwrap.json when new modules are installed. Simply install the
grunt command using these instructions and run
grunt watch either in the background or in a separate terminal window.
HSTS effectiveness has not been verified. It seems it only works for ports 80 and 443, so we must deploy in order to test.
Hash passwords serverside.
No check to ensure that DB 'SELECT' returns a single row. We should probably check even if we believe this is ensured. Could eventual consistenc issues allow two users to create colliding accounts?
Use QUORUM, must set this up.
Add check to make sure username doesn't already exist
Gruntfile is broken?
Database (Cassandra) set up in its most basic form.
Server set up.
Met to discuss all that has happened over break. Divided up tasks for next few weeks.
Started work on login page (basing it a bit on Facebook's login page. Started work on adding routes from database to front-end and changed database schema to allow for clustering.
Sent out Google survey to try and get some data (with tags) for newsfeed operations testing.
Continued work on login page, downloaded and utilized Flat UI (and by extension Bootstrap) to make look more modern.
Scrapped some websites to get more data for testing.
Finished up routes for posting links/media, still need to implement the ability to see what you’ve saved (hoping to get this by next week). Finished a rough version of login page (color and style to be determined later)
Discussed push notification system (asked in class about Facebook’s algorithm for news feeds) and how we want to implement our own newsfeed. Pros and cons to different versions.
Continued discussion about database schema and who we could contact about it (best practices for Cassandra, etc.)
Worked on database functionality and implementing the ability to store and retrieve links in a very primitive “profile page.”
Collin and Jennie met to discuss general feel and look of front-end. Want to be simplicitic and not distracting. Looked at inspriation from Facebook, Tumblr, Twitter, YouTube, etc. Don't want to use blue, think very overused.
Researched how to buil da Chrome extension. Found out about bookmarklets which can be used on any browser. Started working on coding that.
Changed database from being a user object wiht follower/followee set because this is hard to iterate through within the tables. Moved to separate tables for better scalability.
Finished a basic version of the homepage and login page and a universal top bar. Researched and started the implementation for a Facebook login option.
Met for our weekly meeting. Discussed everything that had happened next week and made goals for next week.
Continued to work on the navigation bar and also switched from HTML/CSS to Jade/LESS, making things easier to write and also in preparation for our homepage.
Started a backend overhaul, moving from a pull to a push model for easier implementation. Might make things a bit slower, but that's okay for us and for demo purposes. Makes for an easier, cleaner implementation. Worked on the follower/followee list.
Finished the bookmarklet, save for a few parts that will need to be finialized when we have the final product. Continued working on Facebook integration and uitilizing the API and information we get from them.
Started to think about the recommendation algorithm, should we have time to work on it. Discussed additional features for the website such as a drag and drop feature to take newsfeed links and archive them and making a footer for all pages.
Another weekly meeting. Discussed changing our name from "Blabrr" since that's hard to spell and seems to counterintuittive to what we want this project to be about. Talked about how we want to work on the "social" aspect, such as commenting and liking different links. Also discussed our newsfeed ranking and our ideas for that. We are probably going to do a Twitter/edge rank algorithm with an exponential decay, plus utilize the comments.
Pulled in and worked on merging all the different portions of code on different computers. Working on fixing merge conflicts. Finished Facebook login.
Made our own website scrapper to grab title, images, first paragraph, etc. We were going to someone else's code but would have had to start paying after a small amount of usage.
Bookmarklet no longer works after pulling in changes to database schema--can no longer use GET request. Continued work on comments, almost finished, just need a little more work. Should be like real-time, Facebook commenting when finished.
Finished navbar, part of profile page, error in login, and login page. Talked about a unified format for all pages so that there aren't big differences.
User is now able to create a login and then sign in. Started working on search bar, probably just going to have time for some very basic functionality, but want to at least just be able to search for a specific user.
Another weekly meeting. Dicussed our goals for the final project, now that we're two weeks away from demo day! Want to get social features working and a possibly primitive searching function. Continuing to make website pages such as settings and profile.
Discovered that the bookmarklet doesn't work anymore because we changed the database schema a while ago, but didn't merge it together, so the bookmarklet was created for the old database. Need to update this.
Finished a universal footer, with very basic links (Home, About, Contact Us, etc.). We need to validate URL's that are added! Right now, you must have HTTP:// at the beginning! Search bar searching for user is complete with a few bugs. Need to fix the issue where it crashes if you search for a user who doesn't exist. However, we do have autocomplete on!
Working on getting the search bar to work. Continuing to work on profile page and getting the ability to change profile pictures. Poor documentation, so is taking a while. Have a working, but ugly, newsfeed with all different links with pictures, titles, and descriptions associated with them. Basically, it is functional and has all the data, but doesn't look anything like a newsfeed.
We can now add comments to links in real time! Now working on merging versions we each have on our seaprate computers to all work together. Discussed and started working on the issue where you shouldn't be able to access certain pages or certain parts of pages (such as a newsfeed when you aren't logged in, editted a profile page when it's not your profile, etc.). We will continue working on this in the next week.
Trying to figure out how to make a POST request from another page for bookmarklet. Looking into request module.
Added the functionality to add someone else's link from the newsfeed to your own archive! After a lot of fighting with the necessary tools, we are able to upload our own profile pictures and change them. You still need to refresh the page to do so, but we are working on this.
Comtinuing to work on bookmarklet, getting it to work with the new database schema. Discussed the need for email verification and how we should go about doing this as well as our plan for the last week!
Updated the scrapper for working on sites that specifically articles and doesn't crash when you add a site with no picture (just has a default picture). Went to some other demos to get an idea what we will be asked on Friday. Added a check to make sure that duplicate emails cannot be registered.
Have a nice looking, functional newsfeed! Everything looks nice and is neatly organized and works! Need to do some adjustments, specifically to the comments section (scrolling, a little styling). Still need some buttons for deleting your own archived content and comments. The routes are there also for adding content that someone else has archived, but we need to make a button for it and that connect them.
Set up a system for email verification. The user must verify their email first before being able to log in. Site won't allow you to log in until you verify and has a verification page that confirms you've been verified. Need to make this page look nicer still though!
Fixed how the comments displayed and made it possible to scroll through comments for a given link. Added a button (that currently doesn't do anything) to save a link on your newsfeed. Working on fixing the search bar so that it doesn't crash when you search for a user that doesn't exist. Minior modifications to newsfeed to make look nicer.
Continuing work on the bookmarklet, still having issues because our website is not technically verified as secure. We're also working on merging together all our different pieces that we have, making sure everything works and nothing is broken. We have partially fixed the search bar so that an error pops up if you try to search for a user that does not exist, but it breaks the program, so we still have some work to do on it.
Working on being able to delete comments and links from your profile. Maybe you'll just have to be very careful about what you comment, but deleting links will be easier.
Reformatted how the comments look (red email followed by black actual comment). Finished the profile page and made sure that everything works for our demo!
Cleaned up some of the packages we had that we weren't using fully. Cleaned up some features that we didn't have time to do before. Found out that the HTML5 form requirement doesn't work on Safari, so you can submit an empty form in Safari, even if we think we are checking for this. Going to have to do some research to find a way to fix this known problem with Safari.
Began writing and compiling information for our documentation we have to turn in. We also made our webpage to entice people to our site! We also made a logo.
JSX dependency removal. Switched all of our script paths to absolute paths, removing seven Jade files. Basically, making our program run faster.
Attempted a fix to the HTML5 issue with Safari; still need to test it out. Encrypted passwords server side for better security. Fixed the search bar so that you can search for users with autocomplete and see their profile pictures in the search options. Changed how the comments.js script was called, making it more efficient.
Finished up followers/followees page, just displaying everyone that follows that user and who that user follows respectively. Finished up documentation to turn in and finialized our splash page with screenshots of our website.