Skip to content

Commit bf3a97c

Browse files
committed
Updated README.md to redirect to T2A1
1 parent d3997ee commit bf3a97c

File tree

1 file changed

+5
-177
lines changed

1 file changed

+5
-177
lines changed

README.md

+5-177
Original file line numberDiff line numberDiff line change
@@ -1,180 +1,8 @@
1-
HYPERBOLIC - Market Place
1+
HYPERBOLIC Market Place
2+
---
23

3-
Link to the deployed app: www.myapp.com
4-
Link to github repo: https://github.com/vincentlieu/HYPERBOLIC
5-
6-
## Section 1: Requirement checklist
7-
8-
Each time you have completed a requirement check it off the list. This way it will be easy for the educators as well as yourselves to track your progress.
9-
10-
11-
- [x] 1. Create your app using Ruby on Rails.
12-
- [x] 2. Use Postgresql database in development and production.
13-
- [x] 3. My app has authentication (eg. Devise).
14-
- [x] 4. My app has authorisation (i.e. users have restrictions on what they can see and edit).
15-
- [x] 5. My app has some type of file (eg. images) uploading capability.
16-
- [x] 6. My app is deployed to Heroku (recommended) or AWS.
17-
- [ ] 7. I have identified the problem I am trying to solve by building this particular marketplace app.
18-
- [ ] 8. I have explained why is it a problem that needs solving.
19-
- [x] 9. I have provided a link (URL) to my deployed app (i.e. website)
20-
- [x] 10. I have provided a link to my GitHub repository (repo). I have ensured the repo is accessible by my Educators.
21-
- [ ] 11. I have a complete description of my marketplace app (website), including:
22-
- 11.1 Purpose
23-
- 11.2 Functionality / features
24-
- 11.3 Sitemap
25-
- 11.4 Screenshots
26-
- 11.5 Target audience
27-
- 11.6 Tech stack (e.g. html, css, deployment platform, etc)
28-
29-
- [x] 12. I have provided user stories for my app
30-
- [x] 13. I have provided Wire-Frames for my app
31-
- [x] 14. I have provided an ERD for my app
32-
- [ ] 15. I have explained the different high-level components (abstractions) in my app
33-
- [ ] 16. I have listed and described any third party services that your app will use
34-
- [ ] 17. I have described my projects models in terms of the relationships (active record associations) they have with each other.
35-
- [ ] 18. I have discussed the database relations to be implemented in my application
36-
- [ ] 19. I have provided my database schema design
37-
- [ ] 20. I have described the way tasks are allocated and tracked in my project
38-
39-
NB Slide/Presentation specific requirements
40-
41-
- [ ] 21. An outline of the problem I solved by building this particular marketplace app, and why it’s a problem that needs solving.
42-
- [ ] 22. A well planned walkthrough of my app
43-
- [ ] 23. I have practived my presentation at least once and it is 5-6 minutes long.
44-
45-
46-
### Rubric Criteria
47-
48-
## Section 2: Documentation
49-
NB leave the Titles as they are and answer the questions below.
50-
51-
##### 1. Explain the different high-level components (abstractions) in your App.
52-
* Includes a complete and detailed description of third party services used in the app
53-
54-
##### 2. List and describe any 3rd party services.
55-
#### Amazon S3 [(link)](https://github.com/aws/aws-sdk-ruby)
56-
57-
Facilitates image storage stored on Amazon's cloud platform - AWS. This is used to store listing and user profile images.
58-
59-
#### Devise [(link)](https://github.com/heartcombo/devise)
60-
61-
Authentication solution for Rails based on Warden. This is used to facilitate user registration and login.
62-
63-
#### Bootstrap 4 [(link)](https://github.com/twbs/bootstrap-rubygem)
64-
65-
CSS framework used to build a responsive website. This is used to create an atmosphere for the marketplace.
66-
67-
#### Stripe [(link)](https://github.com/stripe/stripe-ruby)
68-
69-
Provides access to the Stripe API to accept payments made on the marketplace. This is used for customers to make purchases for listings and provide them with a receipt to track their purchases.
70-
71-
#### Faker [(link)](https://github.com/faker-ruby/faker)
72-
73-
A library for generating data for the market place. This is used to generate fake user accounts and listings details.
74-
75-
**DEVELOPMENT**
76-
77-
#### Guard & Guard live-reload [(link)](https://github.com/guard/guard) [(link)](https://github.com/guard/guard-livereload)
78-
79-
Command line tool used to handle events on file system modifications. This was used to automatically refresh the browser when changes have been made to the file system.
80-
81-
#### Ultrahook [(link)](https://github.com/BetterErrors/better_errors)
82-
83-
Receive web hooks on localhost. This was used to relay stripe's POST request to be accessible on localhost.
84-
85-
#### Better_errors [(link)](https://github.com/BetterErrors/better_errors)
86-
87-
Replaces the standard Rails error page to have better and more insightful error messages. This was used to easily identify where issues reside during development.
88-
89-
##### 3.1. Identify the problem you’re trying to solve by building this particular marketplace App?
90-
* Demonstrates a full understanding of the problems that exist in a relevant marketplace that needs disrupting
91-
92-
93-
##### 3.2 Why is the problem identified a problem that needs solving?
94-
* Demonstrates a full understanding of the problems that exist in a relevant marketplace that needs disrupting
95-
96-
##### 4. Describe your project’s models in terms of the relationships (active record associations) they have with each other.
97-
* Complete discussion of the project’s models with an understanding of how its active record associations function
98-
99-
##### 5. Discuss the database relations to be implemented.
100-
![This is an image of your ERD](This is the relative path to it)
101-
* Provides coherent discussion of the database relations, with reference to the ERD
102-
103-
104-
##### 6. Provide your database schema design.
105-
* Flawless, complex, complete, and well thought through ERDs provided
106-
107-
##### 7. Provide User stories for your App.
108-
![user_stories_MVP](docs/app-images/user_stories_MVP.png)
109-
110-
| **Summary** | **Issue key** | **Priority** | **Description** |
111-
| --------------------------- | ------------- | ------------ | ------------------------------------------------------------ |
112-
| **User Avatar** | HRBC-10 | Medium | **AS** a customer, <br />**I WANT TO** be able to upload an avatar, <br />**SO THAT** other users can identify who I am. <br /><br />**Acceptance Criteria:** <br />- It is attached through edit account. <br />- It can be updated multiple times. <br />- The attached avatar is sent to the AWS-S3 bucket. <br />- Avatar is displayed on edit account. <br />- Avatar is displayed on navigation bar. <br />- Avatar will have a placeholder until the user uploads an avatar. |
113-
| **Login form** | HRBC-11 | High | **AS** a registered user, <br />**I WANT TO** be able to login using my email, <br />**SO THAT** I don't have to remember a username. <br /><br />**Acceptance Criteria** <br />- Successful authentication with valid email and password combination. <br />- Invalid email and password combination should return validation indicating invalid credentials. <br />- When the user updates their email, they should be able to login with their updated email. <br />- When the user’s session as expired, they should be prompted to log in again. |
114-
| **Create listing** | HRBC-13 | High | **AS** a seller, <br />**I WANT TO** create listings, <br />**SO THAT** I sell items on the market place. <br /><br />**Acceptance Criteria** <br />- Accessible from all listings <br />- The form contains a title, price, brand, clothing category, condition, description, and image. <br />- *Required fields:* Title, price, brand, clothing category, condition. <br />- Creates a new listing record and is displayed in all listings. <br />- Canceling new listing should navigate back to all listings. |
115-
| **View all listings** | HRBC-14 | High | **AS** a customer, <br />**I WANT TO** view all listings, <br />**SO THAT** I can see what is available on the market. <br /><br />**Acceptance Criteria** <br />- Accessible from the browse page <br />- Sorted descending from time created |
116-
| **Updating a listing** | HRBC-15 | High | **AS** a seller, <br />**I WANT TO** be able to modify my listing, <br />**SO THAT** I can update the details of my listed product. <br /><br /> **Acceptance Criteria** <br />- Accessible from all the user’s created listing. <br />- The form contains a title, price, brand, clothing category, condition, description, and image. <br />- *Required fields:* Title, price, brand, clothing category, condition. <br />- Updates the details of the listing accordingly to the changes made. <br />- Canceling changes should navigate back to the listing. |
117-
| **Remove listing** | HRBC-16 | Medium | **AS** a seller, <br />**I WANT TO** remove my listing, <br />**SO THAT** it is no longer available on the market. <br /><br />**Acceptance Criteria** <br />- Only available to the listing creator. <br />- Accessible from the listing show view. <br />- When removed; all listings page should be updated with the listing removed. |
118-
| **Buying products** | HRBC-17 | High | **AS** a buyer, <br />**I WANT TO** purchase a product, <br />**SO THAT** I can own the product listed in exchange for a payment. <br /><br />**Acceptance Criteria** <br />- The purchase button should be available on the listing’s show page. <br />- Purchasing should redirect to stripe’s payment gateway <br />- When the purchase is successful; the buyer should be redirected to a success screen with the receipt number and product details. <br />- When the purchase is successful; the all listings' view should not display the sold listing. <br />- When the purchase is successful; the purchase button is disabled with a timestamp of the purchase. <br />- When the purchase is successful; the owner of the listing should not be able to remove the listing. <br />- When the product is successful; the purchase <br />- Buyers should be able to track the purchases made. |
119-
| **Favourite listings** | HRBC-18 | Medium | **AS** a buyer, <br />**I WANT TO** favourite a listing, <br />**SO THAT** I can track a potential purchase. <br /><br />**Acceptance Criteria** <br />- Buyers should be able to toggle favourite on/off for a listing. <br />- Buyers can have multiple favourites. <br />- Sellers should be able to favourite listings other than their own. <br />- Only users can see their own favourites. |
120-
| **Show Individual listing** | HRBC-28 | High | **AS** a customer, <br />**I WANT** to be able to view the details of a listing, <br />**SO THAT** I can make a potential decision on whether to buy the product. <br /><br />**Acceptance Criteria**<br /> - Listing should display: Title, price, brand, condition, category, description and an image.<br />- The edit and remove functionality will be displayed for the original creator. <br />- Buyers should be able to view the listing. |
121-
| **Track Purchases** | HRBC-29 | Medium | **AS** a buyer, <br />**I WANT TO** be able to track my purchases, <br />**SO THAT** I can keep a record of time, price and details of the purchase made. <br /><br />**Acceptance Criteria** <br />- Accessible from the navigation bar <br />- Buyers can only view their own purchases. <br />- If attempted to view another user’s purchase they are redirected to the listings page. <br />- Tracks purchase date and time, amount, the product title, receipt, and link to purchase. <br />- Sorted descending according to purchase date. |
122-
| **Track Listings** | HRBC-30 | Medium | **AS** a seller, <br />**I WANT** to track my listings,<br />**SO THAT** I can have a central place to view all listings created by me. <br />**Acceptance Criteria** <br />- Accessible from the navigation bar<br />- Sellers can only view their own listings. <br />- If attempted to view another user’s listings they are redirected to the listings page.<br />- Tracks post date and time, amount, the product title, status, and link to purchase. <br />- Sorted descending according to post date. |
123-
| **Registration Form** | HRBC-5 | High | **AS** a potential customer, <br />**I WANT** to be able to register for an account, <br />**SO THAT** I can login to be a buyer or seller. <br /><br />**Acceptance Criteria** <br />- Accessible from the navigation bar. <br />- Accessible from the login form. <br />- Contains required fields - Full name, email, password, and password confirmation. <br />- Password has minimum criteria of 6 characters. <br /> - Login is accessible from the registration form. |
124-
| **Edit Account** | HRBC-6 | Medium | **AS** a customer, <br />**I WANT TO** be able to modify my account, <br />**SO THAT** I can keep my account details updated. <br /><br />**Acceptance Criteria** <br />- Accessible only when the user is logged in. <br />- Accessible via navigation > edit account. <br />- Can update full name, email, password, biography, avatar. <br />- *Required fields:* Full name and email cannot be null. <br />- Changing password requires new password confirmation. <br />- Not changing password does not require password confirmation. <br />- Uploading an avatar should be displayed on the edit page. <br />- Cancel account is available on the edit page. <br />- Updating details other than the password does not require current password. |
125-
| **Delete Account** | HRBC-7 | Medium | **AS** a customer, <br />**I WANT** to delete my account, <br />**SO THAT** I can no longer be part of the community. <br /><br />**Acceptance Criteria** <br />- Deleting a user should remove all listing associated with that user. <br />- Accessible from Edit Profile. |
126-
| **Log off** | HRBC-9 | High | **AS** a customer, <br />**I WANT TO** be able to log out of my account, <br />**SO THAT** I can prevent my account from being access by others. <br /><br />**Acceptance Criteria:** <br />- Accessible from the navigation bar. <br />- Logout when the user session has expired. |
127-
128-
##### 8. Provide Wireframes for your App.
129-
![This is an image of your wire frames](This is the relative path to it)
130-
![This is an image of your wire frames](This is the relative path to it)
131-
![This is an image of your wire frames](This is the relative path to it)
132-
![This is an image of your wire frames](This is the relative path to it)
133-
![This is an image of your wire frames](This is the relative path to it)
134-
135-
* More than five detailed and well designed wireframes provided, for several different screen sizes (as required for the app)
136-
137-
##### 9. Describe the way tasks are planned and tracked in your project.
138-
![jira_kanban](docs/app-images/jira_kanban.png)
139-
140-
**Project management tool:** Atlassian's JIRA
141-
142-
1. Created an epic called R1 - MVP that houses all the MVP user stories required to launch the web application.
143-
2. Each user story created is assigned a priority to indicate which items are critical for the functionality of the application, where they will then be auto sorted based on priority in the Kanban board (the colour highlighting on the left of the ticket indicate the priority) and placed in the back log. Additionally, they are assigned labels to indicate what piece of functionality is covered in the story and optionally linked to another user story if there are dependencies between stories.
144-
3. The Kanban board is configured to only house a maximum amount of tickets in TO DO and IN PROGRESS lanes to ensure that the story being worked on is done to its fullest before picking up a new task.
145-
4. Days in lane is enabled to indicate the amount of days a ticket has been sitting in a lane. Tickets that have been sitting in a lane for a longer period of time reflects that the item should be picked up and worked on as that ticket could have dependencies.
146-
5. Integration with Github allows each branch and commits to be tracked accordingly to the user story on the Kanban board, allowing traceability to which acceptance criteria was being worked on for that particular story.
147-
148-
##### 10. ERD provided represents a normalised database model.
149-
![This is an image of your ERD](This is the relative path to it)
150-
* Meets D with no duplication and ideal definition of entities.
151-
152-
## Section 3: Code specific assessment.
153-
154-
This section can be deleted from the readme. I have only included it here to draw your attention to it.
155-
156-
##### 11. Model implementation represents a normalised database model.
157-
* Meets D with no duplication and ideal model implementation.
158-
159-
##### 12. Model implementation represents a normalised database model.
160-
* Meets D and represents a highly optimised solution.
161-
162-
##### 13. Implemented controllers demonstrate correct use of commands to query the database infrastructure.
163-
* Meets D and does so elegantly (queries chosen are the most elegant to achieve the result).
164-
165-
##### 14. Queries implemented provide correct data for the given scenario.
166-
* Meets CR and demonstrates exceptional understanding of database queries.
167-
168-
##### 15. Code comments demonstrate how the queries implemented correctly represent the database structure.
169-
* Meets D and all comments are exceptionally written.
170-
171-
##### 16. Identify and use appropriate model methods.
172-
* Identifies and uses appropriate model methods for querying on self and its relationships, extends models scope where appropriate
173-
174-
##### 17. Minimising database calls needed to perform an action.
175-
* Minimise all database calls and implement eager loading where appropriate
176-
177-
##### 18. Sanitise and validates input to maintain data integrity.
178-
* Validates and sanitises all input
4+
This repository is to store the code base.
1795

6+
T2A2 can be found below:
1807

8+
https://github.com/vincentlieu/T2A2-HYPERBOLIC

0 commit comments

Comments
 (0)