Skip to content

Commit cf7b003

Browse files
committed
Add README.md
1 parent 0c0db49 commit cf7b003

File tree

1 file changed

+266
-0
lines changed

1 file changed

+266
-0
lines changed

README.md

Lines changed: 266 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,266 @@
1+
## Project Purpose
2+
3+
TrackIt was developed to allow simple, effective tracking of tickets.
4+
5+
## UX
6+
7+
### Strategy
8+
9+
Site Objective: Provide platform to track tickets (Bugs and Feature Reqests).
10+
11+
User Needs: Intuitive way to raise and track their issues through to completion
12+
13+
Opportunities/Problems table used to determine the strategic priorities UX efforts should address (in this order):
14+
15+
| Opportunity/Problem | Importance | Viability/Feasibility |
16+
| ---------------------------------- | :--------: | :-------------------: |
17+
| A. Track bugs and feature requests | 5 | 5 |
18+
| B. b | 5 | 5 |
19+
| C. c | 2 | 4 |
20+
| D. d | 1 | 2 |
21+
22+
### Scope
23+
24+
#### Functional Specifications
25+
26+
In considering functional specifications, I researched existing ticket and bug trackers, including GitHub issues, placeholder. This helped to identify the key data fields and features users expect to see.
27+
28+
Feature Set:
29+
30+
- Tickets View: Filterable, sortable table of tickets.
31+
- Raise Ticket: Ability to raise a bug or feature.
32+
- Edit Ticket: Ability to edit own ticket if submitter, or any ticket if staff.
33+
- Cancel Ticket: Ability to cancel ticket if submitter, or any ticket if staff.
34+
- Kanban View: This popular agile tool provides tickets in a more visual way.
35+
- Dashboard View: Ability to see various charts at a glance.
36+
37+
#### Content Requirements
38+
39+
In order to provide the value of the above features, the following content is required:
40+
41+
- Checkboxes for filtering
42+
- Dropdowns for sorting and for form input
43+
44+
### Structure
45+
46+
#### Interaction Design
47+
48+
Consistency & Predictability:
49+
50+
- A consistent colour scheme and navigation bar is present throughout the site
51+
- On smaller devices, navigation links collapse into 'burger' button
52+
53+
Feedback:
54+
55+
All interactive elements provide feedback to the user to encourage interaction and provide confirmation when actions are taken.
56+
57+
- Checkbox labels change colour on hover.
58+
- Sort by dropdown has border transition on hover.
59+
- Each record in the table changes background colour and cursor on hover.
60+
- 'Like' button changes colour on hover.
61+
- Icons: medal, timer, water temp provide tooltip additional information on hover.
62+
- Navigation links change colour on hover.
63+
- Pagination links have background colour change on hover.
64+
- All buttons have border transition on hover.
65+
- All buttons have wave effect on click.
66+
- Form validation exists for relevant fields - field displays red 'Required' if invalid, green if valid.
67+
- 'Toast' messages are briefly displayed to show confirmation of user actions.
68+
69+
#### Information Architecture
70+
71+
The filtering and sorting panel is located on the left, a logical and intuitive position expected by users.
72+
73+
Pagination
74+
75+
Sections are on separate pages for to aide...
76+
77+
### Skeleton
78+
79+
#### Wireframes
80+
81+
Two sets of wireframes were created in the early development stage to inform the structure and layout for different device sizes.
82+
83+
[Desktop & Mobile Wireframes](placeholder)
84+
85+
### Surface
86+
87+
Colours:
88+
89+
Fonts:
90+
91+
### User Stories
92+
93+
User stories:
94+
95+
- User 1 - "As a user who
96+
- User 2 - "As a user who
97+
- User 3 - "As a user who
98+
- User 4 - "As a user who
99+
- User 5 - "As a user who
100+
101+
How their needs are met:
102+
103+
- User 1's needs are met by the ability to
104+
- User 2's needs are met by the ability to
105+
- User 3's needs are met by the ability to
106+
- User 4's needs are met by the ability to
107+
- User 5's needs are met by the ability to
108+
109+
## Features
110+
111+
### Existing Features
112+
113+
- Feature 1: User can view brews and apply filters and sorting. Clicking on a brew reveals additional information, including brewer position, brew time, water temperature and process
114+
- Feature 2: User can contribute a brew. Range sliders and dropdown boxes were employed for input validation purposes, which is essential for effective filtering and sorting
115+
- Feature 3: User can edit an existing brew
116+
- Feature 4: User can delete an existing brew. On click of delete button, a modal is presented to ask for confirmation
117+
- Feature 5: User can 'like' a brew, which increments the likes count by 1
118+
119+
### Features Left to Implement
120+
121+
- Potential Feature 1:
122+
- Potential Feature 2:
123+
- Potential Feature 3:
124+
- Potential Feature 4:
125+
126+
## Database
127+
128+
The relational SQL database sqLite was employed.
129+
130+
### Tables
131+
132+
The database has the following tables:
133+
134+
| Field | Type | Description |
135+
| :------ | :------- | :---------------------------- |
136+
| \_id | ObjectId | ID is auto-created by MongoDB |
137+
| barista | String | Name of barista or user |
138+
139+
## Technologies Used
140+
141+
- [Autoprefixer CSS Online](https://autoprefixer.github.io/) : used to add vendor prefixes.
142+
- [Balsamiq](https://balsamiq.com/) : used to create wireframes.
143+
- [Bootstrap](https://bootstrap.com/) : used for responsive webpages.
144+
- [Chrome Developer Tools](https://developers.google.com/web/tools/chrome-devtools) : used extensively to ensure device responsiveness.
145+
- [CSS3](https://www.w3.org/Style/CSS/Overview.en.html) : styling language.
146+
- [Favicon Generator](https://www.favicon-generator.org) : used to create a 16x16 icon, displayed next to page title in browser.
147+
- [Git](https://git-scm.com/) : used for version control.
148+
- [GitHub](https://github.com) : used to host code repository and to deploy project (via GitHub Pages).
149+
- [Google Fonts](https://fonts.google.com/) : used for placeholder.
150+
- [HTML5](https://www.w3.org/html) : used for page structure.
151+
- [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) :
152+
- [jQuery](https://jquery.com/) : used to select and manipulate HTML elements.
153+
- [Material Icons](https://material.io/) : used for icons and fonts.
154+
- [VSCode](https://code.visualstudio.com) : preferred code editor.
155+
- [W3C Validator](https://jigsaw.w3.org) : used to validate HTML & CSS.
156+
157+
## Testing
158+
159+
Extensive automatic and manual testing was conducted to ensure the site functions and looks well on all major browsers (Chrome, Firefox, Safari, Edge) and device sizes.
160+
161+
### Automated Testing
162+
163+
- placeholder
164+
165+
### Desktop Testing (Manual)
166+
167+
Brew Browser Page
168+
169+
- placeholder
170+
171+
Add Brew page
172+
173+
- placeholder
174+
175+
Edit Brew page
176+
177+
- placeholder
178+
179+
404 Error Page
180+
181+
- When an incorrect URL is entered, 404 Page is displayed with image
182+
- Return home button takes user back to Home Page
183+
- Navigation buttons function
184+
185+
### Mobile and Tablet Tests (Manual)
186+
187+
The above Desktop Tests were also conducted on mobile and tablet devices (via Chrome DevTools). In addition, the following mobile and tablet-specific tests were run:
188+
189+
Brew Browser Page (Mobile)
190+
191+
- placeholder
192+
193+
The following tests failed:
194+
195+
| Issue No. | Test Name | Issue | Resolved? | Action Taken |
196+
| :-------- | :---------------------------------------------- | :--------------------------------------------------------------------------- | :-------- | :----------------------------------------------------------------------- |
197+
| 1 | Content is not squeezed or overlapping (Mobile) | Brew Browser table has overlapping horizontal content, even with small text. | Yes | Added materialise class 'hide-on-med-and-down' to bean and grinder icons |
198+
199+
### Code Validation
200+
201+
| Code | Result |
202+
| :-------------------------------------------------------------- | :----- |
203+
| CSS ([W3C](https://jigsaw.w3.org/css-validator/)) | PASS |
204+
| HTML ([W3C](https://validator.w3.org/)) | PASS |
205+
| Javascript with no major errors ([jshint](https://jshint.com/)) | PASS |
206+
| Python ([jshint](https://pep8online.com/)) | PASS |
207+
208+
^ The following classes of errors were deemed not applicable, as the validator did not take into account Flask and Jinja templating:
209+
210+
## Deployment
211+
212+
### Heroku
213+
214+
The application was deployed to Heroku, via the following steps:
215+
216+
1. Heroku.com > Create new app > App name: aeropress-hub, Region: Europe
217+
2. Deploy > Deployment method > Link GitHub account
218+
3. Select repository 'milestone-4'
219+
4. Select branch: 'master'
220+
5. Set Config Vars: Heroku Settings > Config Vars:
221+
- IP: 0.0.0.0
222+
- PORT: 5000
223+
- !UPDATE! MONGO_URI: mongodb+srv://[user]:[password]@myfirstcluster-bgxgx.mongodb.net/aeropress?retryWrites=true&w=majority
224+
6. Manual Deploy > Deploy Branch (master)
225+
7. Heroku Website > Open App
226+
227+
### Local Deployment
228+
229+
1. 'Clone or download' repository from https://github.com/tdunn891/milestone-4, or from command line:
230+
231+
`git clone https://github.com/tdunn891/milestone-4`
232+
233+
2. If your IDE doesn't include a virtual environment, create one (see Python docs: [Creation of virtual environments](https://docs.python.org/3/library/venv.html):
234+
235+
`python3 venv /path/to/new/virtual/environment`
236+
237+
3. Activate virtual environment:
238+
239+
`source /path/to/new/virtual/environment`
240+
241+
4. Install dependencies in requirements.txt via 'pip':
242+
243+
`pip -r requirements.txt`
244+
245+
5. Run app:
246+
247+
`python3 app.py`
248+
249+
6. Go to Local Host in browser to view:
250+
251+
`http://127.0.0.1:5500/`
252+
253+
## Credits
254+
255+
### Content
256+
257+
### Media
258+
259+
Images
260+
Icons
261+
262+
### Acknowledgements
263+
264+
Tutorials
265+
266+
Big thanks to friends and family for help with testing and feedback.

0 commit comments

Comments
 (0)