Collab Progress and Goals by Larry Heyl April 26, 2018 Progress ---------- Collab is a social network for collaborative writing. I call it a collaborative writing game because it's a lot like role playing in that when you're making a post you are never sure where the story (adventure) is going to go. At this point I have a bare bones Collab running at http://hairylarry.sdf.org/collab. - It displays posts and stories. - It allows writers to make posts and continue stories. - Writers can edit their profile. - All of a writers posts are displayed below the writers profile. - There is a Table Of Contents and a Writers Directory. - There is user management that allows writers to Create Account, Log In, Log Out, Change User Name, Change Password, and Change Email. - Create Account requires that a box is checked agreeing to licensing your posts CC-BY. - There is a "link to this story" link in the title post of every story. This is like a permalink on a blog. There are seven writers currently testing Collab as well as an admin account. Thanks to those helping for their bug reports and suggestions for improvement. You can help test Collab by creating an account and writing stories. Questions and comments can be emailed to hairylarry@deltaboogie.com. Tech: Collab is written in PHP without using an SQL database. Everything is stored in text files. The file system is the database. So it should run on any server that supports PHP. Backing up the Collab directory tree on the server backs up everything, both programs and data. Security is implemented using index.html redirectors and .htaccess files in the protected directories. Passwords are encrypted with crypt() and emails are sent with mail(). Log ins are tracked with session variables and cookies. Collab is licensed GPL. Exclusions: Collab is text only with no media attachments. I like pictures with stories. But I want to keep the project as simple as possible without having to deal with the complexities of media files. There is no messaging built into Collab. Messages outside of the stories can be made using email or social network messaging systems. If you log on to Collab and remain truly anonymous there is no way for someone to private message you. By design. Email addresses are only used for confirmations, notifications, and admin contact. They never appear on the website. There is no option to make them appear on the website. If you want to divulge your email address you can post your email in your profile. If you don't want your email exposed Collab will not expose it. Goals ---------- Major Features to be added: Reading List Adding or removing writers from your reading list is similar to the concept of following someone. Your reading list will remain private to you. You can add and remove writers with a toggle on their profile screen that says either "Add To Reading List" or "Remove From Reading List" as appropriate. A Reading List menu button will display the fifty newest posts made by writers on your list in the left column. In the right column will be a help message and a list of the writer's usernames that link to the writer's profiles. To the left of the usernames are checkboxes to remove writers from your list. Below the checkboxes is a "Remove Selected Writers From Your Reading List" button. Email Notifications - checkboxes for - A Weekly Digest - Lists all posts made in the last week. - Notify me when someone continues a story I started. - Notify me when someone continues a story I contributed to. - Notify me when someone on my reading list starts a story. - Notify me when someone on my reading list continues a story. Cloning stories and ending stories Since 90% of writing is rewriting Collab will support editing entire stories with cloning or editing. This will be similar to forking a program under an open source license. When you fork a story by cloning all the text contributed so far appears on an edit screen where the editor can move paragraphs around, fix problems, and add and delete text, as needed. The attribution will be preserved in a "This story was Cloned by" box similar to the attribution boxes at the bottom of any story. At the bottom of a cloned story there is a "Continue this story" link and just like any story, cloned stories can continue without limit. The original story thread is not affected in any way by cloning. Ending a story is exactly like cloning a story except without the "Continue this story" link. Again, ending a story doesn't change the original story thread at all. The End Story function allows the writer/editor to take great ideas from a story collaboration and turn them into polished fiction. The "link to this story" provides an easy way to share this completed work and, of course, it can be copied and used anywhere with correct attribution. Any story can be ended many times. Alternate endings are encouraged as a way to continue collaboration in a "what if?" sort of way. Other Features to be added: Add an RSS Feed for the posts and maybe other RSS feeds as well. Add a language file, en.txt, abstracting all the prompts and menu items displayed by Collab allowing translations and alterations to the wording in the user interface. Make Collab adaptive to mobile devices using bootstrap. Add banning and other anti spam protections. Add comprehesive help, user documents, and installation documents. Right now GitHub only has tar archives of the program tree. I hope to improve the GitHub code availability. I would like to have a security walkthrough. The only real security issues are not exposing email addresses and the possible decryption or interception of passwords. Additional Installations of Collab: The Collab codebase without cloning and ending stories should be useful as a general purpose single threaded discussion forum. I plan on testing that at my SFF Short Stories site as SFF Meta, a discussion about Science Fiction and Fantasy Writing and Free Culture. I also plan on installing a second Collab for collaborative writing at the same site called SFF Collab. Anyone interested in installing Collab can email hairylarry@deltaboogie.com and I'll help you any way I can.