Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion Interlinked/game.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
{
"games": []
"games": [
{
"name": "Super Smash Bros",
"description": "Test entry for update script",
"tags": ["fighting", "test"],
"folderName": "super-smash-bros",
"repo": "https://github.com/ToastedToast00/Super-Smash-Bros"
}
]
}
38 changes: 38 additions & 0 deletions docs/design/commonality-variability.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Commonality and Variability Analysis

## Commonalities
- User must register on the site to access certain features.
- Users can form friendships with other users.
- Users can complete achievements and receive rewards.
- The user is a central actor for the site.
- The user is able to search for games using the built-in search engine.
- An achievement belongs to a game and has completion criteria.

## Variabilities
- Game catalogue
- Why it may change: Games will be constantly added, updated, and removed.
- How it is isolated: Only certain users with certain privileges will add, update, and remove games.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't say this isolates the variability you described. Which code strategy will you use to make it so that adding and removing a new game will be an easy change to make?


- Contact Support
- Why it may change: As the platform grows, we may get a better support system that allows a user to get a support ticket.
- How it is isolated: We would make our own support service.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! I think a ContactSupportService is a great idea, because it will touch many entities. I don't see the implementation in this PR.


- Amount of achievements
- Why it may change: Developers can add content that will also contain achievements players can earn rewards.
- How it is isolated: Modify the achievement system in that specific game (presumably `achievement.js`).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!


- Editing the List of Avatars
- Why it may change: We'll continuously add, delete, or update more avatars as more games roll in.
- How it is isolated: We'll have a dedicated service for admins that allows us to perform this action.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment: not evidenced in this PR.


- User Permission/Role Policies
- Why it may change: New roles sch as admin/moderator as well as developer may be added, permissions may shift as platform grows
- How it is isolated: A permissionPolicy object to define role capabilities

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a really nice idea for the use of a policy object. I think it gives you much more flexibility than having all these roles being different classes. But, same comment: not implemented in this PR.


- Website Themes
- Why it may change: Sometimes the coloring may be off, or we'll add more themes.
- How it is isolated: Have a new .theme.css file for each theme.

- Functionality of the Search Engine
- Why it may change: As the library grows, there will be a more robust way to find results.
- How it is isolated: We optimize the code to use better O Notation for searches.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👏