Difference between revisions of "AssistDesq"

From ICO wiki
(XML)
m (Kgrigorj moved page Ninjas in pyjamas to AssistDesq: newTeamOldProject)
 
(17 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 '''"Forever beta"'''.
+
Kasutajatugi süsteem '''"AssistDesq 2018"'''.
  
 
Ülesanne on teostada veebirakendus, mis võimaldaks hallata kasutajatoele saadetud pöördumisi. Süsteemi funktsionaalsus oleks järgmine: <br>
 
Ülesanne on teostada veebirakendus, mis võimaldaks hallata kasutajatoele saadetud pöördumisi. Süsteemi funktsionaalsus oleks järgmine: <br>
Line 19: Line 16:
  
 
= 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===
Ticket system XML
+
Support Ticket XML
  
 
===XML===
 
===XML===
Line 42: Line 42:
 
   </ticket>
 
   </ticket>
 
   <ticket id="2" category="1">
 
   <ticket id="2" category="1">
       <title><![CDATA[Title]]></title>
+
       <title><![CDATA[Title2]]></title>
       <description><![CDATA[Description]]></description>
+
       <description><![CDATA[Description2]]></description>
 
       <details>
 
       <details>
 
         <priority id="M">Medium</priority>
 
         <priority id="M">Medium</priority>
Line 72: Line 72:
 
                         <xs:complexType>
 
                         <xs:complexType>
 
                           <xs:sequence>
 
                           <xs:sequence>
                               <xs:element name="priority">
+
                               <xs:element name="priority" type="xs:string">
                                 <xs:attribute name="id" type="xs:integer" use="required" />
+
                                 <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>
 
                               <xs:element name="user" type="xs:string">
 
                               <xs:element name="user" type="xs:string">
                                 <xs:attribute name="role" type="xs:integer" use="required" />
+
                                 <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="id" type="xs:integer" use="required" />
 
                                 <xs:attribute name="email" type="xs:string" use="required" />
 
                                 <xs:attribute name="email" type="xs:string" use="required" />
Line 84: Line 92:
 
                         </xs:complexType>
 
                         </xs:complexType>
 
                     </xs:element>
 
                     </xs:element>
                     <xs:element name="attachment" type="xs:string" />
+
                     <xs:element name="attachment" type="xs:string">
 +
                        <xs:attribute name="id" type="xs:integer" use="required" />
 +
                    </xs:element>
 
                   </xs:sequence>
 
                   </xs:sequence>
 
                   <xs:attribute name="id" type="xs:integer" use="required" />
 
                   <xs:attribute name="id" type="xs:integer" use="required" />
Line 99: Line 109:
 
XSLT => HTML
 
XSLT => HTML
  
DRAFT:
+
<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%;
 +
}
  
<source lang="xml">
+
th {
 +
    height: 50px;
 +
    text-align: left;
 +
}
  
<?xml version="1.0" encoding="utf-8"?>
+
tr:hover {
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+
    background-color: #f5f5f5
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
+
}
    <xsl:output method="html" indent="yes"/>
+
th, td {
+
    border-bottom: 1px solid #ddd;
    <xsl:template match="/">
+
}
<html>
+
</style>
        <head>
+
            <title>Tickets</title>
          <title>Pöördumised</title>
+
        </head>
        </head>
+
        <body>
<body>
+
            <table>
          <h1>Käesolevad pöördumised</h1>
+
              <caption>
 
+
                  <b>Current tickets</b>
  <xsl:for-each select="/tickets/ticket">
+
              </caption>
            <h2>
+
              <tr>
              <xsl:value-of select="name"/>
+
                  <th>Date</th>
            </h2>
+
                  <th>ID</th>
<ul>
+
                  <th>Subject</th>
...
+
                  <th>Description</th>
</ul>
+
                  <th>Created by</th>
          </xsl:for-each>
+
                  <th>Priority</th>
</body>
+
              </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>
 
       </html>
</xsl:template>
+
  </xsl:template>
 
</xsl:stylesheet>
 
</xsl:stylesheet>
 
 
</source>
 
</source>
  
 
===XSLT 2===
 
===XSLT 2===
 
XSLT => XML
 
XSLT => XML
 
DRAFT:
 
  
 
<source lang="xml">
 
<source lang="xml">
Line 141: Line 189:
 
     xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
 
     xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
 
     <xsl:output method="xml" indent="yes"/>
 
     <xsl:output method="xml" indent="yes"/>
     <xsl:template match="/">  
+
     <xsl:template match="/">    
+
      <tickets>
...
+
        <ticketstotal>
+
          <xsl:value-of select="count(tickets/ticket)"/>
</xsl:template>
+
        </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>
 
</xsl:stylesheet>
 
</source>
 
</source>
  
 
=Retsensioonid=
 
=Retsensioonid=

Latest revision as of 14: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