This specification uses the terms MUST, SHOULD, MAY, MUST NOT, MAY NOT, SHOULD NOT, RECOMMENDED, OPTIONAL, REQUIRED, SHALL as defined in RFC2119.
We use the following terminology to specify the user states:
Terminology | Definition |
---|---|
UCL | University College London. |
WECHAT LOGIN | User is logged in via WeChat API. |
UCL LOGIN | User is logged in via UCL API. |
GUEST | User is neither logged in via WeChat nor UCL API. |
LOCAL TIMEZONE | The timezone where UCL is located. Note the the timezone needs to take into account Daylight Savings adjustments. |
LOCAL CITY | London. |
CSSA | UCL Chinese Students and Scholars Association. |
ADMIN | Administrator |
CSSA-CARD | Discount card published by UCL CSSA. |
This part should contain:
- Date. Use LOCAL TIMEZONE.
- Weather. Use weather for LOCAL CITY.
Required elements:
- Weather
- Highest Temperature (Degrees Celsius)
- Lowest Temperature (Degrees Celsius)
- Recommended clothing
Events are displayed inside a horizontal slider:
- Auto-scroll is enabled on the slider, with animation time set to 2 seconds.
- Events cards MUST contain CSSA activities.
- MAY contain other information.
- Horizontal Slider SHOULD display preview images.
- Each preview image represents an article.
Full news article SHOULD be displayed on a new page.
TODO: What happens if the user is not yet logged in?
The personal time table contains two components:
- Horizontal slider which displays today's lecture(s).
- Show Full Timetable button ("显示完整课表").
Each lecture is displayed inside a block which represents a time slot (c.f. outlook calendar events).
It is REQUIRED that the horizontal slider only moves when the user scrolls it.
Each block SHOULD include following information:
- Start and End Times.
- Event Location(s) (Building, Room).
- Relevant Participant Name(s) (Lecturer's name in case of a Lecture event).
- Event Type, one of:
- Lecture
- Problem-based Learning
- Discussion
- Tutorial
TODO: Pending design.
- A block that displays available seats for each library.
- The information for each library MUST be displayed as progress bars.
- A progress bar represents the number of empty seats.
- When there are no seats:
- Progress bar is full.
- When there are available seats:
- Progress bar shows proportion of available seats versus total seats.
- The color of the bar represents how busy each library is.
- The actual number of available seats MUST be displayed next to the bar.
- The user MAY press each progress bar if he/she wants to see more information about the corresponding library.
- When there are no seats:
The color of the progress bar MUST indicate the availability of each library:
Color | Meaning |
---|---|
GREEN 💚 | Proportion of empty seats is above or equal to 70%. |
YELLOW 💛 | Proportion of empty seats is less than 50%. |
ORANGE 🔶 | Proportion of empty seats is less than 30%. |
RED 🔴 | Proportion of empty seats is less than 15%. |
- The proportion of available seats and the number of available seats MUST be displayed.
The most popular libraries or study facilities that MUST be displayed:
- Main library
- Science library
- Student Centre
- IOE library
The user SHOULD be able to choose his/her favorite study facility (i.e. pin it).
Jump to library seats page.
TODO: Jump to library seats page. TODO: Pending Design.
User MAY post information of different categories.
The categories MUST include:
- 房屋出租
- 二手闲置
- 提问回答
- 失物招领
-
It is REQUIRED that the horizontal slider only moves when the user scrolls it.
-
When user press specific section, that section should be highlighted as shown in the design and the posts displayed should be filtered.
Each post inside each category page SHALL be displayed as a post block. A post block should include the following elements:
- Time
- Title
- Brief content
- User Information
- Photo
LOCAL TIMEZONE
TODO: Discuss how many characters Title should include?
TODO: Discuss how many characters Brief Content should include?
TODO: Discuss photo size and other photo-related specifications.
No more than 3 photos.
User Profile and ID.
TODO: Pending design.
When pressed, display the CSSA-CARD.
Restaurant Block should include following elements
- Name of restaurant
- Photo of restaurant
TODO: Pending design.
TODO: Pending design.