-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArchitecture.txt
executable file
·44 lines (32 loc) · 3.9 KB
/
Architecture.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Architecture
Atakr Overview:
Atakr is a mobile application that allows users to browse short video-game videos that are hosted by other parties (youtube, twitch, gyfcat, etc.). The focus is on content rather than creators so it will employ a model more akin to 9gag/reddit rather than youtube. This means that usability is geared more towards being able to browse new and hot content that is frequently getting updated rather than tuning into specific creators.
Atakr will not host any of the videos itself, rather it will maintain a database of links to the appropriate services. In a sense, Atakr is simply a navigational tool, a way to place all of these similar videos together in one centralized place. Clicking on the video that you want to watch will launch the appropriate app or service. Considering my application is basically reddit with a narrower focus, I probably want to implement this function similar to how they've done it.
CLIENT SIDE (MOBILE APPLICATION):
-LoginActivity
-NewAccountActivity
-MainActivity
--Menu
--BrowseFragment
---TopTab
---HotTab
---NewTab
--GameBrowseFragment
--SearchFragment
--UserFragment(TODO)
LoginActivity(
-Simple login page that asks for username and password. Only accessed when a user deliberately logs out of their account. Otherwise, user will always be signed in to their account after sign-up.
-Designated as simplified because I do not have the resources to immediately design a well-implemented login activity (for example, on the standards of
NewAccountActivity(Simplified):
-Upon installation, this e activity the user is lead to when the application is launched. It simply asks for a username, a password, and for a confirmation on the password. Once the user creates an account the user is navigated to the MainActivity. The NewAccountActivity will not be accessible unless the user deliberately signs out (navigating to the LoginActivity) and clicks on "New User".
MainActivity:
-A simple toolbar that holds a menu button, a search bar, and a user profile pic/button. Menu allows you to navigate to games, content genre, and game genre (look to twitch for inspiration). Underneath the toolbar is a frame that will hold the app's various fragments.
BrowseFragment:
-An appbar of size ?appbarsize x 2. The first instance of appbarsize is blank by default but if the user categorizes (by game, game genre, or video genre) this space will hold the name of the current category.
- The second instance of appbarsize contains the three tabs (top, hot, new). Top will have a little arrow next to it. On the arrow's click a small menu will drop allowing the user to choose the range of Top videos (day, week, month, year, alltime).
GameBrowseFragment:
-Displays a gridview list of rectangular images that hold pictures of various video games. The titles of the games are displayed on the bottom of the images. Videos are sorted by popularity (measured in total views). Selecting a game navigates to MainActivity and the list of displayed videos has video game title as a selection.
SearchFragment:
-Their are five categories whose contents may be returned to the search query: games, videos, game genre, video genre, and users. The name of the category only appears in the list if it has any results matching the query string. It is possible all five categories will be present and it is also possible that only 1 category will be present. Since I do not have the resources to implement a good search function, I will stick with only strings that match the search query letter for letter. Of course, this also means that 'abc' can return 'dfabcge'.
UserFragment(unimplemented):
-Due to time constraints and human capital constraints, this activity will remain unimplemented and will be categorized as TODO. While the design and functionality are not defined as of right now, the general purpose of this activity is rve as a portal to user-related settings, history, and preferences.