Scooperland

Cooprnet

 

Cooprnet is a tool used to build websites, and is implemented in Java. Many websites use a freemium business model, in which subscribers pay optional fees to access premium features. Website builders use 2 languages: Cooperscript and Coopertags. Coopertags is a simplified version of HTML. The sister project of Cooprnet is Scooperland, a web-based image-sharing application.

  • For a website called "mysite", the URL is mysite.cooprnet.com
  • Subscribers pay $20/year (gold) or $12.50/year (silver)
  • Silver members can only join at most 2 websites at once, and can only switch websites once a week
  • Gold members are members of all websites
  • Calculation of website resources consumed:
    • Let W = (no. of image file megabytes served) x (no. of kilo-nodes created)
    • Nodes are 12-byte chunks of RAM
    • Summed up for all users of a given website in one month
  • Let H = cost of web hosting
  • Websites where W is less than twice the median M are free: H = 0
  • H = for W between 2 and 4 times M = $10/mo.
  • W between 4 and 8 times M = $15/mo.
  • W between 8 and 16 times M = $25/mo.
  • W between 16 and 32 times M = $40/mo.
  • W greater than 32,768 times M = $300/mo.
  • W greater than 100,000 times M: website speed is throttled
  • Every paying website gets a rebate (part of subscription fee revenue = F) proportionate to HR where R = A / B and A is less than or equal to B
  • All rebates add up to F
  • A = W for non-members only and
  • B = W for members only or vice versa
  • Purpose of R = A / B: motivate developers to create balanced websites, where population sizes of members and non-members are as equal as possible
  • Allow financial transactions between developers and end-users using credit cards/PayPal
  • Don't charge transaction fees
  • Transaction disputes (cheating):
    • Developer accused of cheating by 3 or more unique users in 90 days or less
    • User accused of cheating by 2 or more unique developers in 180 days or less
    • User/developer gets F rating for 2 years (allowed to appeal)
  • Any Coopertags web page can have a corresponding HTML web page which contains converted HTML code and a link to its Coopertags page
factor = W / M monthly fee = H W / M H W / M H
2 $10 64 $80 2048 $200
4 15 128 100 4096 225
8 25 256 125 8192 250
16 40 512 150 16,384 275
32 60 1024 175 >32,768 300

Coopertags Syntax

Coopertags is a simplified markup language used to replace HTML. Arbitrary Coopertags code can be embedded in the Cooperscript echo statement. Coopertags syntax, where asterisk (*) means repetition, is defined as follows:

  • Tags:
    • [tag]
    • [tag: body]
    • [tag (fld val)*: body]
  • Body:
    • text
    • [: text]*
    • [(fld val)*: text]*
  • Call Cooperscript code:
    • [expr: <expr>]
    • [exec: <stmt>... ]
    • [coop: <path>]

Monospace Mode

In monospace mode, all body text rendered to the screens of end-users is in a mono-spaced, typewriter-style font. Every character takes up 2 square cells: an upper cell and a lower cell. Superscripts and subscripts are handled by employing a vertical offset of one square cell. Header text is also mono-spaced, and each character takes up 2 oversized square cells.

Additional Formatting

The grid of characters can be subdivided into panels, which can themselves be subdivided into more panels, and so on. Any panel can contain zero or more text boxes, which may overlap each other. Vertical grid lines each take up one square cell per row of square cells. Horizontal grid lines are displayed in the same pixel row as underscore characters. Any row of square cells containing a horizontal grid line which is 2 pixels wide is taller by exactly one pixel. The following bracket characters: ( ) [ ] { } can be oriented vertically or horizontally, taking up a single column or row of at least 2 square cells, respectively. Widgets such as check boxes, radio buttons, and combo box arrows take up 4 square cells (2 by 2). Images, animations, and diagrams are contained in canvas objects, which can appear anywhere panels can appear.

Rich-Text Mode

In rich-text mode, a given header or paragraph of body text can consist of a single variable-width font. Paragraphs have before/after spacing, left/right indent, and line spacing (single, double, 1.5, etc.). Panels have margins on all 4 sides. In both rich-text and monospace modes, text is rendered to the HTML5 canvas object. Some features like form fields and submit buttons use hidden HTML.

Implementation Steps

  1. Read Murach's Java Servlets and JSP book
  2. Implement Jabbler: web-based HTML5 Scrabble game, user vs. robot
    • Jabbler is currently console-based Java Scrabble game
  3. Write Coopertags design specs
  4. Implement CPTG-to-HTML converter
  5. Implement monospace mode
  6. Implement rich-text mode
  7. Integrate Cooperscript with Coopertags (monospace/rich-text modes)
  8. Implement COOP-to-JS converter
  9. Implement Cooprnet
  10. Design website
  11. Launch website
  12. Beta test Cooprnet
  13. Accept credit card payments

Revenue and Expenses

  • Let Q = no. of freemium projects
  • Assume Q = 20
  • Let q = no. of freemium projects who pay hosting fees
  • Assume q = Q x 30 percent = 6
  • Let s = no. of silver members/project
  • Assume s = 20
  • Divide by 2, assuming each silver member belongs to 2 projects
    • Then no. of silver members = Qs / 2 = 20 x 20 / 2 = 200
    • Assume user conversion rate = 5 percent
    • Let U = no. of users
    • Then U = 200 / 5 percent = 4000
    • F = subscription fees total = 200 x 12.5 = $2500/year
    • Let H = web hosting fees total
    • Let h = avg. hosting fee per project per month
    • Assume h = $20
    • H = 12qh = 12 x 6 x 20 = $1440/year
    • Let N = net amt. paid to each project
    • Then N = (F - H) / q
    • N = (2500 - 1440) / 6
    • N = $177/year
    • Let N = (KF - H) / q
    • Assume N = 0
    • H = KF
    • K = H / F
    • K = 1440 / 2500 = 58 percent
    • Let V = revenue
    • V = F - H
    • V = 2500 - 1440 = $1060/year
  • Assume Q = 100
  • Assume q = Q x 30 percent = 30
  • Assume s = 40
  • Divide by 2, assuming each silver member belongs to 2 projects
    • Then no. of silver members = Qs / 2 = 100 x 40 / 2 = 2000
    • Assume user conversion rate = 5 percent
    • Let U = no. of users
    • Then U = 2000 / 5 percent = 40,000
    • F = subscription fees total = 2000 x 12.5 = $25,000/year
    • Assume h = $20/month
    • H = 12qh = 12 x 30 x 20 = $7200/year
    • Let N = (KF - H) / q
    • Assume N = 0
    • K = H / F = 7200 / 25,000 = 29 percent
    • V = F - H = 25,000 - 7200 = $17,800/year
    • Let E = expenses
    • E = Google AdWords cost + web hosting
    • E = 3600 + 7500 = $11,100/year
    • Let P = profit
    • P = V - E
    • P = 17,800 - 11,100 = $6700/year
[ Back to Top ]