AssistDesq: Difference between revisions
m Kgrigorj moved page Ninjas in pyjamas to AssistDesq: newTeamOldProject |
|||
(20 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
= Meeskond = | = Meeskond = | ||
Karen Grigorjan <br> | Karen Grigorjan <br> | ||
= Idee = | = Idee = | ||
Kasutajatugi süsteem '''" | 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 | Support Ticket XML | ||
===XML=== | ===XML=== | ||
<source lang="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> | </source> | ||
===XML schema (XSD)=== | ===XML schema (XSD)=== | ||
<source lang="xml"> | <source lang="xml"> | ||
<?xml version="1.0" encoding=" | <?xml version="1.0" encoding="UTF-8"?> | ||
<xs:schema | <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: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> | </xs:schema> | ||
</source> | </source> | ||
Line 132: | Line 109: | ||
XSLT => HTML | 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> | </html> | ||
</xsl:template> | |||
</xsl:stylesheet> | </xsl:stylesheet> | ||
</source> | </source> | ||
===XSLT 2=== | ===XSLT 2=== | ||
XSLT => XML | XSLT => XML | ||
<source lang="xml"> | <source lang="xml"> | ||
Line 174: | 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)"/> | |||
</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 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>