Code and Design Spec
Code and Design Spec
Functional
Primary
- Users can search for posts based on keywords
- Users can filter posts based on different criteria
- Users can create a post, edit it and publish it
- Within each post, there should be subparts for About, Preferences, Hotel/Neighborhood, Contact
- Users can browse the detail page of posts
Secondary
- User can save the draft post without publishing it
- Users can create their own accounts and sign in using their account
- Users can verify their real-life or fandom identity
- Users can chat with other users
Technical
Primary
- Cross-browser support for Chrome, Firefox, and Safari
- Internet connection needed to use the platform
- Website will be coded in React, hosted on GitHub pages
- No other hardware required
Secondary
- Mobile support for advanced IOS / Android smartphones and tablets
Usability
Primary
- Interface is user-friendly
- Flow between screens is intuitive
- ADA compliant
Secondary
- Tutorial walking through interactions on the platform
Storyboards
Flow 1: Browse through posts to look for roommates
Flow 2: Create a post to look for roommates
Architectural Design
The above figure shows how the components of the architecture of our system would interact. At the lowest level, we require a database. This database should contain tables of information about users, posts, reviews, and chat history. In the figure, we have identified the preliminary fields we would need in such a database. At the next level, we need a backend API that interacts with the database to process data and return the information we would like. This involves functions for account management, getting account information, making/viewing/filtering posts, making/viewing reviews, and making/viewing chats. Then, we have frontend components that will allow the user to actually interact with the platform and make requests that would need the data from the database that the backend API provides. This diagram is clearly a very complex system, and this project has limited time to be completed. Therefore, our scope for the next few weeks will be to work only on the frontend aspect and “fake” the backend with data. Moreover, our preliminary focus will be on the three pages:
- Homepage/feed view
- Make a post
- View detailed posting The remaining pages will be addressed if time permits.
Connection between architecture and requirements
The primary requirements in (1) and (2) are the ability to look for roommates for an event and to create posts looking for roommates. Our architecture enables us to do this by allowing users to make searches, and filter based on their preferences, to posts that are relevant to a certain event or location. Further, they are enabled to view detailed information that has been stored in a database about both the poster and the posting. We also provide the functionality to create posts and publish them, by providing a frontend form that connects to store information in our database so they are accessible to all other users of the platform.