Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Спецификация #2

Open
antitoxic opened this issue Jan 12, 2016 · 0 comments
Open

Спецификация #2

antitoxic opened this issue Jan 12, 2016 · 0 comments

Comments

@antitoxic
Copy link
Member

MVP Grada.me

Реално, най-полезното нещо, което може да направим един приятен mapping app. С добра документация и лесен начин за конфигурация ще може да се преизползва.

Може да се преизползва и да не е само едно приложение за, а и "app за местата за рециклиране около теб", "app за подаване на ралзични видове сигнали (не само градски)", и всякакъв вид друг граждански mapping. Има започнат проект за мапинг на незаконни постройки в резервати. App-а ти казва "Хей, ти си в резерват, има ли около теб постройки - пробвай да провериш дали са легални".

Главна функционалност

  1. Submit-ваш снимка/снимки/видеа (каквото изберем), заедно с координати и категория (списък взет от сървъра), опционално описание.

    Първото нещо, което ще добавим след MVP версията е: след въведени категория и адрес да се прави проверка дали има вече близки по локация (пример в радиус от 10 метра) други сигнали от същата категория.

  2. Позволяваме на хората ползващи този апп да казват "И за мен това е важно." Това е един вид, както често ние разработчиците казваме, "+1" за някой проблем в github. Когато човек го натисне се увеличава броя хора, които смятат, че този проблем е важен. В същото време този бутон действа като "follow"/"favourite" и абонира човека за промени по сигнала като ще получава notifications, когато сигнала е SUBMITTED | ACCEPTED | REJECTED | IN PROGRESS | REJECTED | FIXED | FIXED BADLY | FAILED. Но wording-a тук е важен да бъде в духа на "+1 И за мен е важно", за да не почнат хората наред да го натискат като like.

    Веднъж щом сигналът е маркиран като оправен, този бутон изчезва и го замества въпрос (в момента не можем да си представим къде ще е и в какъв widget). Въпросът ще е "Оправен ли е сигнала?" с опции Да, Не, Некачествено оправен

  3. В админа на grada.me, което в началото ще е web-only generated admin трябва да имаме потребители с различни права (owner, collaborator, responsible institution.), които могат да сменят статута на сигнала/мястото и да назначават отговорни за репаването му други потребители. Статуси: SUBMITTED | ACCEPTED | REJECTED | IN PROGRESS | REJECTED | FIXED | FIXED BADLY | FAILEDТова е важно, за да може администрацията и други участници да видят, че е мислено и за тях. Не просто да се спамят.

Планирани бъдещи опции

Хубаво е да се има предвид, че след MVP-то ще се доработят следните неща:

  • След въведени категория и адрес да се прави проверка дали има вече близки по локация (пример в радиус от 10 метра) други сигнали от същата категория.
  • Филтрация по различни критерии примери: сигнали около теб, сигнали от даден тип (дупки примерно), сигнали от даден state (пример: оправени сигнали). Има мокъпи за мобилното. Ето пример от уеб:
    3c6cd42a3d713ebd509ec336958f76ea53c1c250d51b5ed175 pimgpsh_fullsize_distr
  • Позволяваме на хората да коментират и да пожелаят сами да се заемат с оправянето на проблем. Аналогията отново с github е Self-assign - АЗ ЩЕ ГО ОПРАВЯ!
  • Когато човек се самоназначи или още преди това, според типа на сигнала (замърсяване на зел. площи, счупена лампа, разместени плочки) им предлагаме инфо/howto наръчник какво е нужно, за да го направят. Често за дадена задача - примерно подобряване на междублоково пространство има някой задължителни неща. Да речем че се иска да се постави люлка, за това е нужно да се провери дали има кабели близко до земята на същото място, дали няма планирани работи от общината и тн.
  • Възможност за администрацията да назначават даден потребител/организация като отговорен за даден проблем
  • Възможност да се докладва за трол/спам/фълшив потребител

API описание

Следното описание е непълно. Липсват описания на някой заявки, а други описани са непълни. Все пак е полезно четиво, за да се добие обща представа:

https://docs.google.com/document/d/1yAE_LeDqpvhx6_sGtPVowIVFDzd3ZEkiRiO_4UDMlLg/edit#

Примерен модел

В pseudo code:

Mappable: {
  id: Number,
  type: String,
  createdBy: User,
  assignedTo: [User, User, User],
  subscribed: [{User, User, User...}]
  status: Status,
  description: String, 
  location: GeoIndexedField,
  address: String,
  images: [Image,Image,Image],
  video: String, // link to youtube upload
  dateCreated: { type: Date, default: Date.now },
  dueDate: Date,
  activityLog: [{
    dateTime: Date,
    activityType : String,
    from : User,
    changes : [{},]
  }],
  comments: [],
}

User: {
  name: String,
  email: String,
  password: String,
  validated: String,
  date_created: { type: Date, default: Date.now },
  date_updated: { type: Date },
  photo: Image,
  role: Role, // municipality, user, moderator, admin, organisation
  token: {type: Object},
  //For reset we use a reset token with an expiry (which must be checked)
  reset_token: {type: String},
  reset_token_expires_millis: {type: Number},
  facebook_fields..
  twitter_fields...
  google_fields_...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant