Coder Social home page Coder Social logo

kahooba's People

Contributors

wundram avatar

Watchers

 avatar  avatar  avatar

kahooba's Issues

Choose database technology

Pick a database system that can store the version document objects we want, and support a good query system. We also want something that will work well with a .net C# based server.

Design data model

We have to design the data model for the app.

  • We need to determine what our object types are.
  • How we are modeling relationships
  • How we index the objects, and what their unique IDs look like
  • How do we model complex relationships
  • How do the relationships between the branch objects and version objects work?
  • How do labels work?

Design user, login and entitlement system

Login

  • Pick a technology
  • Can we integrate with other auth systems like Crowd or AD? How about SSO?

Entitlement

  • How do store entitlements
  • Do roles sit between users and entitlements?
  • How do we store entitlements? How do they fit with the data?
  • How do we model special entitlements for authors and creators. (like the author of a comment can delete it, but not everyone who can author a comment)

Notifications

  • How to assign notifications to roles, special roles (author, watcher, revisor, creator), and users
  • How to map events to notifications subscriptions
  • Some notifications are owned by the user, some by the project. How do we store them? How user overrides for project level notifications?

Profile

  • What else is in the user record?
  • Do we need groups?

Design API

Design the external API for the application

F: Customizable version schema

Not all users are going to want a dotted quad version syntax, and even with dotted quads, the last or second to the last might be a build, which could be very large, a date, or whatever. So you should be able to customize a version schema, or pick a built in one. Each schema is going to have a list of fields, each with a type like int (8,16,32,64 bits), string, date time, character...

Also each version schema has at least one format specifier to convert the fields into a string (and possibly read a string into fields). A parable format is one that can be parsed from a string into individual fields, and can roundtrip (ignoring decorative fields). A tokenizer or regular expression of some kind would need to be provided. One format would have to be canonical and parsable, and be in order of rank. This is the format that would be used in wildcard expressions.

The fields will have some attributes, like

  • decorative: doesn't participate in comparisons or indices,
  • rank: where does the field sit in the hierarchy. For example in major.minor.fix.build, major is rank 1, minor rank 2, fix rank 3, and build rank 4. In general version formats should lay out fields in order of rank, but there may be exceptions. The rank should probably be used in constructing a index for the version schema.

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.