Begining the multiple user editing

Today we finished the proof of concept for the multiple user editing. When users make an action their action is sent to the server and the server stores the data in an array of changes to send to all the other connected users. Currently only one instance of a document can be opened by any one user or the data will be split between the two browser windows. Soon in the future this will change. I am truly exited for when this features is completed.

– Asher

Advertisements

More Upgrades

With the addition of a whole new back end structure I went forward with recreating the front end a little bit. Aside from a few bugs that exist in the spreadsheet application we now have a new login and user profile page. It is almost the same as the old one but is a bit shinier. The shadows and background moves in response to your mouse to give it some 3D looking effect, not sure if that is going to stay or not though. Jerry Schneider is working on redoing the code editor and got some work done at the hackathon but has not pushed his code yet because of some integration issues with the code editor and the new backed. Hopefully when that is done we will see some of his awesome work.

New Login Screen

Image

New user profile

Image

Recreating The Backend

On suggestion of one of our new members, Andrew Karnani, we have begun recreating the back end, almost from scratch. This time making much more use of the full potential of Django. Along with recreating the back end we have changed the way that the Django server communicates with web applications. The new way uses pure JSON instead of some odd custom string. A result of this will be a more simplistic API for application / server communication. During the RCOS hackathon this Saturday (the 22nd) I plan to hammer out the bugs with this new communication system, and if we are lucky we will begin working on instant saving and loading / live editing.

– Asher

Simple Graphical Updates

While we have been developing briefcase one of the goals is for it to look good. Recently I finished what I believe to be a good first version of how briefcase will look. Maybe even in the future we will have people creating their own version of the layout.

– Asher Glick

 

Allowed Users and UGRS

Today Asher and I submitted our abstract for Briefcase to the undergrad research symposium. Not much else to say about that 🙂

We also worked on getting allowed_users working. I added a many to many relationship field to the Spreadsheet database model that links with the UserProfile model. Asher changed it so that the owner username and the file primary key can be sent through the url. Now not only can you view a spreadsheet if you are the owner, you can also view someone else’s spreadsheet if you are logged into an account that is in the allowed users list for that file.

Automatic Server Updating

Though I recently wrote a post. I recently struggled with a problem I found more difficult then most.
For a while we manually updated our server. It worked quite seamlessly to any observer.
But now it automaticly gets our code from online, the solution could possibly be considered divine.
So to you all I would like to bestow, our simple PHP code below.

<?php
  echo "Pulling Repo <br>";
  echo exec("cd /home/shared/Briefcase; git pull readonly master");
  echo "<br> Finished";
?>

Databases

Today I started switching the file system over to django models and linking them with owner users. I didn’t get very far, but I’m meeting with Asher on saturday to make more progress. Some of the stuff I need to do I can’t do without him since I don’t know much about his front end. Hopefully at the end of saturday we will have saving and loading spreadsheets from the database working – including being able to save multiple files.

Also, I actually used something I learned in the database systems class I’m currently taking. Even though django models the database for you based off of your models, you still need to manage the types of relationships to a degree. I started messing with adding a many to many field to the spreadsheet model that would represent the “allowed users” relationship between spreadsheets and user profiles.