Coder Social home page Coder Social logo

bookmarks's Introduction

RAILS_BOOKMARKS

How to rewrite my homepage in Rails, Web 2.0 Style.
This is an exercise in exercising Ajax.

Features:
  DONE  Ajax editing page.
  DONE  Nested Sortables.
        restful_authentication
        LiveValidation?
        Page/fragment caching.
Chores:
        Switch from Test::Unit to RSpec
        Switch from Scriptaculous to JQuery
        RDOC
        
Those first two chores pretty much require a rewrite from scratch.

TODO
  Fix scriptaculous stacking flash messages.
  Write official CSS id/class naming policy.
  Align ids.
  Send unimplemented actions somewhere? back to preceding controller?
  What to do when a page/column etc does not exist.

Functionality:
  Display Page                        done
  Jump to Edit Page                   done
  Back to Display Page                done
  New Page                            
  Page Preferences: colors            
  Column Insert                       done
  Column Delete                       done
  Section Insert                      done
  Section Delete                      done
  Section Move                        done
  Section Edit (title)                done
  Bookmark Insert                     done
  Bookmark Delete                     
  Bookmark Move                       done
  Bookmark Edit (legend, url)         done
  Bookmark Upload Image               done
  Admin interface
    view other people's pages         

Structure
  page ->
    columns ->
      sections ->
        bookmarks
        
User experience:

  Page
    Allow you to pick background?
    Javascript color picker?
    
  First time: starts with an empty page that says:
    To start constructing your page:
      [add a column]

  Add Column
    Contacts server, creates a column
    updates page to add a column with it's editing fields
    So page must therfore have a div ready to be replaced

  Column editor:

    Show existing rows, with edit button next to them.
    They should be draggable so they can be moved within the column
    and between columns, and have an edit button.

  Row Element Edit

    Popup a little window that has Name, Image and URL in-place-edit fields.

  Admin Interface
    A Web-1.0 way of examining and editing all pages.

Database
  WebPage
    url
  Column
    webpage_id
    nth_from_left
  Section
    column_id
    nth_section_from_top
    title
  Bookmark
    section_id
    nth_from_top_of_section
    Legend
    Image
    Possibly: Heading, Large, Small, Italic, Bold...?

Integration
  Setting up a new 
  How to plug it into an existing webpage - IFRAME
  Ideally want a way where a non-developer can do it
  bookmarks.sampierson.com/homeloangoddess.com
  editing entities done via bookmarks.sampierson.com/homeloangoddess.com/edit ?
  or                                                                    /column
  
Authentication?
  Add later.
  Cookie based sessions.
  Signup.

Routes

  http://bookmarks.com/:site                 GET       Display page
                                                       If page does not exist,
                                                       redirect to /new
                      /:site/webpage/new     GET       Authenticate, perform signup
                                                       Ask if user wants to create this page
                            /webpage/create  POST-Ajax Create DB entries - page, column, section
                                                       Ajax.upate page contents with display()
                                     
                                     show,edit,update,delete    Do not really have a lot of meaning here.
                                                                Webpage has no user editable content.
                                                                Unless we add aliases?
                                                                
                      ^ may truncate /webpage/new to /new. simirlarly for create.
                      
                      /:site/column/new      POST      Webpage will have buttons to add columns
                                                                before, inbetween and after current columns.
                                             insert-before/1
                                             insert-after/1
                                             
                      /:site/column/<c>/section/new
                      /:site/column/<c>/section/create
                      /:site/column/<c>/section/insert-above/1
                      /:site/column/<c>/section/insert-below/1
                      /:site/column/<c>/section/<s>/edit
                      /:site/column/<c>/section/<s>/update
                      /:site/column/<c>/section/<s>/destroy
                      
                      /:site/column/<c>/section/<s>/bookmark/new
                      /:site/column/<c>/section/<s>/bookmark/create
                      /:site/column/<c>/section/<s>/bookmark/insert-above/1
                      /:site/column/<c>/section/<s>/bookmark/insert-below/1
                      /:site/column/<c>/section/<s>/bookmark/<b>/edit
                      /:site/column/<c>/section/<s>/bookmark/<b>/update
                      /:site/column/<c>/section/<s>/bookmark/<b>/destroy

bookmarks's People

Contributors

sampierson avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.