AssistDesq: Difference between revisions

From ICO wiki
Jump to navigationJump to search
m (Kgrigorj moved page Ninjas in pyjamas to AssistDesq: newTeamOldProject)
 
(41 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Meeskond =
= Meeskond =


Anna Linskaja <br>
Karen Grigorjan <br>
Karen Grigorjan <br>
Sergei Hristoforov <br>
Artyom Likhachev


= Idee =
= Idee =


Kasutajatugi süsteem '''"AssistDesq 2018"'''.


Ülesanne on teostada veebirakendus, mis võimaldaks hallata kasutajatoele saadetud pöördumisi. Süsteemi funktsionaalsus oleks järgmine: <br>
•        Kasutaja saab sisestada pöördumise. <br>
•        Pöördumisel peab olema kirjeldus, sisestamise aeg, lahendamise tähtaeg. Sisestamise ajaks märgitakse pöördumise sisestamise aeg, teised kohustuslikud väljad täidab kasutaja. <br>
•        Kasutajale kuvatakse aktiivsed pöördumised koos kõigi väljadega nimekirjas sorteeritult kahanevalt lahendamise tähtaja järgi. <br>
•        Pöördumised, mille lahendamise tähtajani on jäänud vähem kui 1 tund või mis on juba ületanud lahendamise tähtaja, kuvatakse nimekirjas punasena. <br>
•        Kasutaja saab nimekirjas pöördumisi lahendatuks märkida, mis kaotab pöördumise nimekirjast. <br>


= Projekt =
= Projekt =
 
===Analüüs===
Analüüsi document asub [https://docs.google.com/document/d/1sX3OX38TA2z-Qj3RpoxVWVdNDMLTlf9GSHcwVlk5Gcg/edit?usp=sharing siin]
===Source code===
Asub [https://www.dropbox.com/s/y7l7lefimu0u1pc/TicketSystem.rar?dl=0 siin]
==XML==
==XML==
===Teema===
===Teema===
Support Ticket XML
===XML===
===XML===
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<tickets>
  <ticket id="1" category="3">
      <title><![CDATA[Title]]></title>
      <description><![CDATA[Description]]></description>
      <details>
        <priority id="H">High</priority>
        <user role="1" id="12323" email="top@kek.ee">chubakapra90</user>
        <date>2017-03-19</date>
      </details>
      <attachments>
        <attachment id="1">dsdsad</attachment>
      </attachments>
  </ticket>
  <ticket id="2" category="1">
      <title><![CDATA[Title2]]></title>
      <description><![CDATA[Description2]]></description>
      <details>
        <priority id="M">Medium</priority>
        <user role="2" id="3333" email="hehe@lol.ee">ivanka_trump</user>
        <date>2017-03-20</date>
      </details>
      <attachments>
        <attachment id="1">dsdsad</attachment>
      </attachments>
  </ticket>
</tickets>
</source>
===XML schema (XSD)===
===XML schema (XSD)===
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xs:element name="tickets">
      <xs:complexType>
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="ticket">
              <xs:complexType>
                  <xs:sequence>
                    <xs:element name="title" type="xs:string" />
                    <xs:element name="description" type="xs:string" />
                    <xs:element name="details">
                        <xs:complexType>
                          <xs:sequence>
                              <xs:element name="priority" type="xs:string">
                                <xs:attribute name="id" type="xs:string" use="required">
                                    <xs:restriction base="xs:string">
                                    <xs:pattern value="[HML]"/>
                                    </xs:restriction>
                                </xs:attribute>
                              </xs:element>
                              <xs:element name="user" type="xs:string">
                                <xs:attribute name="role" type="xs:integer" use="required">
                                    <xs:restriction base="xs:string">
                                      <xs:pattern value="[0-3]"/>
                                    </xs:restriction>
                                </xs:attribute>
                                <xs:attribute name="id" type="xs:integer" use="required" />
                                <xs:attribute name="email" type="xs:string" use="required" />
                              </xs:element>
                              <xs:element name="date" type="xs:date" />
                          </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="attachment" type="xs:string">
                        <xs:attribute name="id" type="xs:integer" use="required" />
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:integer" use="required" />
                  <xs:attribute name="category" type="xs:integer" use="required" />
              </xs:complexType>
            </xs:element>
        </xs:sequence>
      </xs:complexType>
  </xs:element>
</xs:schema>
</source>
===XSLT 1===
===XSLT 1===
XSLT => HTML
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" version="1.0" exclude-result-prefixes="msxsl">
  <xsl:output method="html" indent="yes" />
  <xsl:template match="/">
      <html>
        <head>
            <style type="text/css">
table {
    width: 100%;
}
th {
    height: 50px;
    text-align: left;
}
tr:hover {
    background-color: #f5f5f5
}
th, td {
    border-bottom: 1px solid #ddd;
}
</style>
            <title>Tickets</title>
        </head>
        <body>
            <table>
              <caption>
                  <b>Current tickets</b>
              </caption>
              <tr>
                  <th>Date</th>
                  <th>ID</th>
                  <th>Subject</th>
                  <th>Description</th>
                  <th>Created by</th>
                  <th>Priority</th>
              </tr>
              <xsl:for-each select="/tickets/ticket">
                  <tr>
                    <td>
                        <xsl:value-of select="details/date" />
                    </td>
                    <td>
                        <xsl:value-of select="@id" />
                    </td>
                    <td>
                        <xsl:value-of select="title" />
                    </td>
                    <td>
                        <xsl:value-of select="description" />
                    </td>
                    <td>
                        <xsl:value-of select="details/user" />
                    </td>
                    <td>
                        <xsl:value-of select="details/priority" />
                    </td>
                  </tr>
              </xsl:for-each>
            </table>
            <p>
              Total number of current tickets:
              <xsl:value-of select="count(tickets/ticket)" />
            </p>
        </body>
      </html>
  </xsl:template>
</xsl:stylesheet>
</source>
===XSLT 2===
===XSLT 2===
XSLT => XML
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">     
      <tickets>
        <ticketstotal>
          <xsl:value-of select="count(tickets/ticket)"/>
        </ticketstotal>
        <xsl:for-each select="/tickets/ticket/">
          <xsl:sort select="/details/date" order="ascending"/>
          <ticket id ="{@id}" category ="{@category}" date="/details/date">
            <title>
            <xsl:value-of select="title"/>
            </title>
            <description>
            <xsl:value-of select="description"/>
            </description>
          </ticket>         
        </xsl:for-each>     
      </tickets>   
    </xsl:template>
</xsl:stylesheet>
</source>


=Retsensioonid=
=Retsensioonid=

Latest revision as of 13:05, 9 June 2018

Meeskond

Karen Grigorjan

Idee

Kasutajatugi süsteem "AssistDesq 2018".

Ülesanne on teostada veebirakendus, mis võimaldaks hallata kasutajatoele saadetud pöördumisi. Süsteemi funktsionaalsus oleks järgmine:

• Kasutaja saab sisestada pöördumise.
• Pöördumisel peab olema kirjeldus, sisestamise aeg, lahendamise tähtaeg. Sisestamise ajaks märgitakse pöördumise sisestamise aeg, teised kohustuslikud väljad täidab kasutaja.
• Kasutajale kuvatakse aktiivsed pöördumised koos kõigi väljadega nimekirjas sorteeritult kahanevalt lahendamise tähtaja järgi.
• Pöördumised, mille lahendamise tähtajani on jäänud vähem kui 1 tund või mis on juba ületanud lahendamise tähtaja, kuvatakse nimekirjas punasena.
• Kasutaja saab nimekirjas pöördumisi lahendatuks märkida, mis kaotab pöördumise nimekirjast.

Projekt

Analüüs

Analüüsi document asub siin

Source code

Asub siin

XML

Teema

Support Ticket XML

XML

<?xml version="1.0" encoding="UTF-8"?>
<tickets>
   <ticket id="1" category="3">
      <title><![CDATA[Title]]></title>
      <description><![CDATA[Description]]></description>
      <details>
         <priority id="H">High</priority>
         <user role="1" id="12323" email="top@kek.ee">chubakapra90</user>
         <date>2017-03-19</date>
      </details>
      <attachments>
         <attachment id="1">dsdsad</attachment>
      </attachments>
   </ticket>
   <ticket id="2" category="1">
      <title><![CDATA[Title2]]></title>
      <description><![CDATA[Description2]]></description>
      <details>
         <priority id="M">Medium</priority>
         <user role="2" id="3333" email="hehe@lol.ee">ivanka_trump</user>
         <date>2017-03-20</date>
      </details>
      <attachments>
         <attachment id="1">dsdsad</attachment>
      </attachments>
   </ticket>
</tickets>

XML schema (XSD)

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
   <xs:element name="tickets">
      <xs:complexType>
         <xs:sequence>
            <xs:element maxOccurs="unbounded" name="ticket">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="title" type="xs:string" />
                     <xs:element name="description" type="xs:string" />
                     <xs:element name="details">
                        <xs:complexType>
                           <xs:sequence>
                              <xs:element name="priority" type="xs:string">
                                 <xs:attribute name="id" type="xs:string" use="required">
                                    <xs:restriction base="xs:string">
                                     <xs:pattern value="[HML]"/>
                                    </xs:restriction>
                                 </xs:attribute>
                              </xs:element>
                              <xs:element name="user" type="xs:string">
                                 <xs:attribute name="role" type="xs:integer" use="required">
                                     <xs:restriction base="xs:string">
                                      <xs:pattern value="[0-3]"/>
                                     </xs:restriction>
                                 </xs:attribute>
                                 <xs:attribute name="id" type="xs:integer" use="required" />
                                 <xs:attribute name="email" type="xs:string" use="required" />
                              </xs:element>
                              <xs:element name="date" type="xs:date" />
                           </xs:sequence>
                        </xs:complexType>
                     </xs:element>
                     <xs:element name="attachment" type="xs:string">
                        <xs:attribute name="id" type="xs:integer" use="required" />
                     </xs:element>
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:integer" use="required" />
                  <xs:attribute name="category" type="xs:integer" use="required" />
               </xs:complexType>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema>

XSLT 1

XSLT => HTML

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" version="1.0" exclude-result-prefixes="msxsl">
   <xsl:output method="html" indent="yes" />
   <xsl:template match="/">
      <html>
         <head>
            <style type="text/css">
table {
    width: 100%;
}

th {
    height: 50px;
    text-align: left;
}

tr:hover {
    background-color: #f5f5f5
}
th, td {
    border-bottom: 1px solid #ddd;
}
</style>
            <title>Tickets</title>
         </head>
         <body>
            <table>
               <caption>
                  <b>Current tickets</b>
               </caption>
               <tr>
                  <th>Date</th>
                  <th>ID</th>
                  <th>Subject</th>
                  <th>Description</th>
                  <th>Created by</th>
                  <th>Priority</th>
               </tr>
               <xsl:for-each select="/tickets/ticket">
                  <tr>
                     <td>
                        <xsl:value-of select="details/date" />
                     </td>
                     <td>
                        <xsl:value-of select="@id" />
                     </td>
                     <td>
                        <xsl:value-of select="title" />
                     </td>
                     <td>
                        <xsl:value-of select="description" />
                     </td>
                     <td>
                        <xsl:value-of select="details/user" />
                     </td>
                     <td>
                        <xsl:value-of select="details/priority" />
                     </td>
                  </tr>
               </xsl:for-each>
            </table>
            <p>
               Total number of current tickets:
               <xsl:value-of select="count(tickets/ticket)" />
            </p>
         </body>
      </html>
   </xsl:template>
</xsl:stylesheet>

XSLT 2

XSLT => XML

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">      
      <tickets>
        <ticketstotal>
          <xsl:value-of select="count(tickets/ticket)"/>
        </ticketstotal>
         <xsl:for-each select="/tickets/ticket/">
          <xsl:sort select="/details/date" order="ascending"/>
          <ticket id ="{@id}" category ="{@category}" date="/details/date">
            <title>
            <xsl:value-of select="title"/>
            </title>
             <description>
             <xsl:value-of select="description"/>
             </description>
          </ticket>          
        </xsl:for-each>       
      </tickets>     
    </xsl:template>
</xsl:stylesheet>

Retsensioonid