Skip to content

Models Specs

Sam Havron edited this page Sep 16, 2016 · 1 revision

You should think about what your data models will be and how they will relate to each other. For example, if you're building an application for students to hire turors, you might have models for users, tutors, tutees, reviews etc. Users might have a relationships to tutors and tutees (can a user tutor one subject and receive help in another?). You can also start to spec out what fields will be in each model (eg first name, email address etc).

Drone Marketplace (expensive~) Leasing your drones...Elon Musk: "go to work, have your car service others during the 8-hour day, make you money automatically..."

Drones-As-A-Service (DaaS)

User:

  • username (string)
  • password (string)
  • email address (string)
  • many-to-many relationship with Host (sic)
  • many-to-many relationship with Client (sic)
  • jobs (list of all Job objects that belong to the user)

Host:

  • reputation as a host (float) [did I lease the drones well?]
  • drones_owned (list of all the host's drone objects)
  • drones_available (list of ready-to-lease drone objects in the owned list)
  • drones_deployed (list of drone objects out for lease in the owned list)

Client:

  • reputation as a client (float) [did I treat the drones well?] purchased)

Drone:

  • drone_id (string) [each instance of drone object has a unique id]
  • model_name (string)
  • drone_desc (string) [the host can enter whatever description they want]
  • picture (image format)
  • demo (link to photo gallery or videos)
  • permissions (string) [e.g. you can't edit my drone's software, you must comply to this government regulation, etc]
  • owner (User object) [one owner per drone object]
  • owner_email (string)
  • last_checked_out (string) [timestamp]
  • location (tuple(float, float))
  • battery_level (float)
  • maintenance_status (string) [owner writes in maintenance issues etc]
  • available_for_hire (boolean) [is it available right now, or is it not?]

Jobs: [all of the subprocesses happening between client wanting a drone and drone returning to owner]

  • transaction_id (string)
  • drone_id (string)
  • host (Host object)
  • client (Client object)
  • price_per_day (float) [ask TAs how to do price, also just look at project descriptions to see what we need to do for this]
  • transaction_time (string)
  • job_status (string) [cancelled, active, inactive, eaten by dog etc. could be a list of some sort]
  • schedule (Schedule object)

Schedule: [perhaps create superclass and have separate jobs/drone schedules]

  • schedule_id (string)
  • time_leased (float)
  • time_returned (float)

Client_Reputation: [to be determined. includes block cipher stuffs.]

Host_Reputation: [to be determined. includes block cipher stuffs.]

Clone this wiki locally