Meeskond "Harold": Difference between revisions

From ICO wiki
Jump to navigationJump to search
Anroots (talk | contribs)
mNo edit summary
Anroots (talk | contribs)
mNo edit summary
Line 1: Line 1:
[[Category:Võrgurakendused II: hajussüsteemide ehitamine]]
[[Category:Võrgurakendused II: hajussüsteemide ehitamine]]
{| style="width:100%;height: 40px; background-color:#f2dede;border: 1px solid #222;color:#B94A48;padding:10px;font-size:16px;font-weight:bold-webkit-border-radius: 8px;-moz-border-radius: 8px;border-radius: 8px;"
{| style="width:100%;height: 40px; background-color:#f2dede;border: 1px solid #EED3D7;color:#B94A48;padding:10px;font-size:16px;font-weight:bold-webkit-border-radius: 8px;-moz-border-radius: 8px;border-radius: 8px;"
|- style="text-align: center"
|- style="text-align: center"
| Paistab, et tegu on üheliikmelise meeskonnaga.
| Paistab, et tegu on üheliikmelise meeskonnaga.

Revision as of 14:43, 27 February 2012

Paistab, et tegu on üheliikmelise meeskonnaga.


Meeskond "Harold"
Aine: Category:Võrgurakendused II: hajussüsteemide ehitamine
Juhend: Juhend
Tüüp: Projekt
Liikmed: User:Anroots
Juhendajad: User:Mposka
User:Kraspel
Semester: 2011/2012 kevad
Kood (GitHub)
Valify: https://github.com/anroots/Valify
Challengo: https://github.com/anroots/Challengo
Live demo
Valify: http://v.sqroot.eu

Projekt

Projekti esimene ja viimane osa käsitlevad sama teemat, veebiteenuse ülesande raames realiseeritakse eraldiseisev lahendus.

Korraldus

Projektiga seonduv dokumentatsioon (erandiks on käesolev wiki leht), kasutajale nähtavad tekstid ning lähtekood on kirjutatud inglise keeles. Võimalusel on kood kirjutatud hilisema I18n toe võimaldamiseks.

Koodi haldab GitHub repositoorium, juurdepääsu saamiseks tuleb projektijuhile saata oma GitHub kasutajanimi (või pull request). Tegemist vajavaid töid näeb GitHub lehel Issues vahekaardilt ning asjakohane dokumentatsioon (API) on GitHub wiki alamjaotises.

Lähtekood on põhjalikult kommenteeritud, muud, eraldiseisvat dokumentatsiooni koodi kohta pole.

XML Andmefailid

Tähtaeg 3. märts 2012

XML andmefail kirjeldab veebiteenuse "Challengo" andmeid. Andmed asuvad MYSQL andmebaasis, mille struktuur on kirjeldatud ERD mudeliga

MYSQL ERD mudel

. XML formaadis andmeid väljastab serveris asuv PHP API.

Päringud (aka Feature set)

Nimekiri erinevatest päringutüüpidest, mis tagastavad omapärase struktuuriga XML-i.

  • Väljakutsete nimekirja küsimine
    • Kasutaja aktiivsed väljakutsed
    • Kasutaja lõpetatud väljakutsed
    • Alustamata väljakutsed
    • Kõik väljakutsed
  • Alamülesannete nimekirja küsimine (mingi väljakutse kohta)
    • Lõpetatud alamülesannete nimekiri
    • Lõpetamata alamülesannete nimekiri
    • Kõik alamülesanded
  • Kasutajate nimekirja küsimine
  • Märkide nimekirja küsimine

Väljakutsete info päring

Väljakutsete kohta saab XML formaadis infot, tehes GET päringu BASE/api/v1/challenge/get[/ID] URI pihta. Kui ID on tühi, tagastatakse kõik read.

<?xml version="1.0" encoding="UTF-8"?>
<challenges>
    <challenge id="2" tasks="3" max_points="9" can_complete="false" progress="0%">
        <id>2</id>
        <title>Amateur Sportsman</title>
        <description>Get a grip of yourself! Do some exercises and toughen up to not look like a blob.</description>
        <duration>1209600</duration>
        <points_required>8</points_required>
        <badge_id>2</badge_id>
        <tasks>
            <task id="45" completed="false">
                <id>45</id>
                <title>Run 1km</title>
                <description>Some cheating allowed.</description>
                <power_id>1</power_id>
                <badge_id>1</badge_id>
                <points>2</points>
            </task>
            <task id="46" completed="false">
                <id>46</id>
                <title>Start the morning with push-ups</title>
                <description>Do as many as you feel comfortable doing (at least one). Wash up afterwards.</description>
                <power_id>1</power_id>
                <badge_id>2</badge_id>
                <points>3</points>
            </task>
            <task id="47" completed="false">
                <id>47</id>
                <title>Play a sports game with friends</title>
                <description>Be it soccer, basket- or baseball, playing something with friends is always fun.</description>
                <power_id>1</power_id>
                <badge_id>3</badge_id>
                <points>4</points>
            </task>
        </tasks>
    </challenge>
</challenges>

XSD skeemifail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="challenges">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="challenge">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" type="xs:unsignedByte" />
              <xs:element name="title" type="xs:string" />
              <xs:element name="description" type="xs:string" />
              <xs:element name="duration" type="xs:unsignedInt" />
              <xs:element name="points_required" type="xs:unsignedByte" />
              <xs:element name="badge_id" type="xs:unsignedByte" />
              <xs:element name="tasks">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="task">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="id" type="xs:unsignedByte" />
                          <xs:element name="title" type="xs:string" />
                          <xs:element name="description" type="xs:string" />
                          <xs:element name="power_id" type="xs:unsignedByte" />
                          <xs:element name="badge_id" type="xs:unsignedByte" />
                          <xs:element name="points" type="xs:unsignedByte" />
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="completed" type="xs:boolean" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:unsignedByte" use="required" />
            <xs:attribute name="tasks" type="xs:unsignedByte" use="required" />
            <xs:attribute name="max_points" type="xs:unsignedByte" use="required" />
            <xs:attribute name="can_complete" type="xs:boolean" use="required" />
            <xs:attribute name="progress" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Veebiteenus "Valify"

Tähtaeg 14. aprill 2012

N.B! Praegune Git repo (ja live demo) on kirjutatud PHP-s ning sisaldab minimaalset funktsionaalsust andmete kogumiseks. PHP rakendus kirjutati selleks, et võimalikult vara kümne lehekülje kohta statistikat koguma hakata, hiljem saab PHP poolt loodud andmebaasi importida.

Idee

Tegemist on veebiteenusega, mis kogub ja väljastab infot veebilehtede lähtekoodi ajaloolise valideerimise kohta W3C standardite järgi. Teenusel on sisemine nimekiri (mida saab täiendada) veebilehtedest ning andmebaas, mida teatud ajavahemiku tagant automaatselt uuendatakse. Andmebaas sisaldab iga veebisaidi kohta ajaloolist infot. Infot annab W3C Validator tööriist ning selleks on vastava veebilehe lähtekoodi vea (error) ja hoiatus (warning) numbrid.

Teenusel on graafiline veebiliides ning kasutajapõhine API. Mõlemad liidesed võimaldavad sooritada samu toiminguid: infot pärida ning kontrollnimekirja hallata. Veebiliides suudab kuvada ka etteantud päringutingimustele vastavat graafikut. Näiteks saab küsida http://delfi.ee koodi valideerimisandmed ühe kuu kohta, et näha, kui usinad sealsed veebimeistrid vigade parandamises olid.

Ekraanipilt rakendusest, proof-of-concept versioon

Toimimine

  • Salvestatakse lehekülje URL
  • Rakendus (serveris) küsib W3C validaator API-lt selle aadressi error ja warning numbrid
  • Rakendus salvestab tulemused ajatempliga ning küsib perioodiliselt (1p) andmeid uuesti
  • Rakendus näitab veebilehel graafikut vigade arvu trendiga
  • Rakendusel on kasutajapõhine API domeenide lisamiseks ning andmete pärimiseks.

Feature set

Tegevused, mida API ja/või veebiliidese kaudu teha peaks saama.

  • Kasutaja autentimine
    • Kasutaja lisamine
    • Login, sessiooniga, API token
    • Kasutaja blokeerimine
  • Kontrollnimekirja haldus
    • Veebilehe lisamine kontrollnimekirja
    • Veebilehe eemaldamine kontrollnimekirjast
    • Veebilehe URL muutmine peale lisamist
    • Kontrollide ajutine peatamine (suspend checking)
  • Automaatne kontroll fikseeritud ajavahemiku tagant
    • Kontrollib veebilehte W3C validaator API kaudu
    • Tulemused salvestatakse ajatempliga
  • Kontrollide tulemuste kuvamine
    • Graafikuna (Google Charts API, andmed JSON vastusena API-lt)
    • Kontrolli tulemuste kuvamine tabelina mingi veebilehe kohta
    • Tabeli filtreerimine
  • API dokumentatsioon

Klientrakendus

Tähtaeg 5. mai 2012

Klientrakendus on Windows Phone 7 klient Challengo teenusele, mis kasutab projekti esimeses osas koostatud XML andmestruktuuri.

XML-i väljastab Challengo API, mis vajab veel kirjutamist. Challengo on realiseeritud PHP-s.

Feature set

  • Autentimine
    • Login
    • Logout
  • Nimekiri aktiivsetest väljakutsetest ja nende staatustest
    • Nimekiri väljakutse alamülesannetest ja nende staatustest
  • Väljakutse märkimine lõpetatuks
    • Alamülesande märkimine lõpetatuks
  • Uue väljakutse valimine nimekirjast
    • Väljakutse detailide ja alamülesannete vaatamine
  • Väljakutse "hülgamine" (abandon)
  • Kasutaja statistika näitamine
    • Praegune punktiseis
    • Lõpetatud väljakutsed
      • Lõpetatud alamülesanded
    • Teenitud märgid

Meeskonna Liikmed

  • Ando Roots anroots@itcollege.ee

Liitumine

for t in tudengid:
  if !t.laisk && t.oskab_progreda:
    kutsu_meeskonda(t)
$ mail -s "Harold" anroots@itcollege.ee

Eeldan varasemaid teadmisi ning usaldusväärsust. Soovin, et asi ei lõppeks jälle nii, et projektijuht on kaitsmiseelsel õhtul üleval ja lõpetab üksinda projekti. Ole nii kena ja anna huvist märku enne 26. veebruari.

Lisad

Challengo

Challengo.me on Garage48 Tallinn 2011 raames alustatud veebiteenus.

A social network of themed challenges, comes with a Karma profile and level-system.
Revenues from ads on the mobile version.
Team members: Ando Roots, Kristo Vaher, Valeria Gasik, Jelena Savinen
EmbedVideo is missing a required parameter.

Jelena tutvustab Challengo teenust