Skip to content
This repository has been archived by the owner on Jun 7, 2022. It is now read-only.
/ devsphere Public archive

a rails app i was building for learning purposes

Notifications You must be signed in to change notification settings

kfatehi/devsphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

devsphere is collaborative networking software. It combines the social networking facets you know with innovative linking features to create a platform where the process of an entire project can be aggregated and easily documented in one place.

Features
1. Topbar
    a. search
    b. command symbols (#,?, !, @, $, *)
2. Knowledge Base (utilizing permissions to control editing)
3. Wiki (utilizing permissions to control editing)
4. File hosting and playback
    a. documents (converted so it can be rendered natively by site, re-encoded upon download)
    b. images
        i. galleries
        ii. slideshows
    c. audio
    d. video
5. Messages
    a. private
    b. multi-user/group
6. Scheduling
    a. calendars
    b. deadlines
7. Newsfeed
    a. commits
    b. status updates
    c. uploads
    d. notes
8. Member roles
    a. grade (admin, etc) permissions
    b. group (mapping, texturing, engine, network, etc) abilities
9. Ticket Tracker
    a. multiple users can claim items, permissions for multi or solo can be set
    b. subfocusing for collaboration
10. Feedback
    a. comments
    b. polls
11. Pensieve


"Global means global, for both columns"
As I understand, we want the homepage or landing page to give us an overall, "global" view, where the left column shows available Tickets/Tasks, Projects? etc, and the right column shows the global newsfeed.


devsphere, blending development and community

"Friends" don't exist. All users are visible and can contact other users in the network -- just like in forums. 

Pensieve -- one writes down a thought, which is put into a collection of thoughts from that user (or grouped in some other fashion). That thought can be referenced in future activity like file uploads or documents. (brainchild)

Documents (notes) can be edited collaboratively or solo

Private Messages

Scheduling -- calendars, deadlines

Roles

Search

Support for polls

Issue Tracker, Todo
    - multiple users can claim these items
        a. have subfocusing (comment threads, teamspeak rooms, git branches, etc)

Newsfeed (filter by role, hashtag)
1. Commits
2. Status updates (comments)
3. hashtags
4. other activity (uploads, notes)
5. File upload (can be hashtagged)
    A. Uploader
        - have easy uploading like imgur's drag and drop
    B. Files Index (shows all the files, filterable by hashtag/category)
        - behavior determination per file extension (e.g. videos are embedded/playable, audio, etc)

Hints
hints require two things to happen
1. the activity item has a hashed word (they can view or create/edit a hint via a link in a predictable location)
    a. Scenario: A user is looking at some #map and a commenter asks a question relevant to #mapping (aliased to #map, even) and another commenter knows the answer, knows it applies to some relevant tag including #mapping, and creates a Hint object)
2. the user clicks on the activity item and a knowledge base item appears to the right (ala twitter)

?mapping is a "Hint" or KnowledgeBaseLink (hashlink) that autobinds to #mapping and other aliased #hashtags

Knowledge Base

superset hash ($)
    a. hashtag (#)
    b. hashlink (?)

topbar
1. search
2. command symbols
    a. hashlinks (?texture goes straight to knowledge base for texture)
    b. @ shows users
    c. prefixing ! posts the words following as a status
    d. * denotes actions or opens interfaces. (*upload opens the uploading, *note opens note writing, *open displays all saved items that haven't been publically released)
    e. sometimes, they can be combined ("!We need to fix the UI *save" -- this will save the status)




Name? Bazzah, DevSphere, devhouse



For this project I would want to use BDD (Behavior Driven Development) in which we describe features and scenarios in plain english (also called "tests"), and build the project by means of implementing the code the makes these tests pass, resulting in a robust application.
http://cukes.info/ Example follows:

Feature: Addition
    In order to avoid silly mistakes
    As a math idiot
    I want to be told the sum of two numbers
    
    Scenario: Add two numbers
        Given I have entered 50 into the calculator
        And I have entered 70 into the calculator
        When I press add
        Then the result should be 120 on the screen
        
        
        Ideas to explore later
        command line interface
        project/group/house organization --Projects, however, can be formed (save this for later stage of development when multiple subsets of people will be using a single network).


Figure out what the hell this is~Shadow

About

a rails app i was building for learning purposes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published