A Silly Lil Extension
Abstract
Ever had a rough day of coding and wish you had something to cheer you up? Well this vs-code extension brings you just that!!! From celebrating when your builds run correctly or congratulating you for writing a certain amount of lines, ‘A Silly Lil Extension’ keeps you sane and in the game when you need it the most!
Author
Name: Jackson Trenerry
Student number: 47439511
Functionality
Coding can be mentally draining so to keep you with your spirits high ‘A Silly Lil Extension’. There are vast amount of features the will hopefully let the user have a more enjoyable time coding.
- A silly little goose
- Walks around your code / IDE and does random things i.e. falling over, honking and chasing your mouse
- Could be customised to be more than just a goose, i.e. cat or dog
- Has a speech bubble that displays text i.e. positive messages, could be added to by the user
- Friends / peers could send messages through the goose / animal, for words of encouragement or funny jokes
- Confetti or other effects when you reach certain milestones
- Every X lines writtern it can shoot up confetti so that the program gets postive reinforcement
- Can have a success popup / effect when a successful run is done / compiles without error
- Could make a leaderboard to show these so you can flex on your friends / peers or bully them when it doesn’t work
- Daily coding streaks
There is no better motivation then seeing a number getting bigger and bigger so why not here
- Me, just then
- Seeing the daily streak of contributions in a specific file/directory or just in general, this can be apart of a larger feature like a user profile perhaps?
- User Profiles
- The extension could interact with an website to display different users and their achievements / daily streaks, could be similar to a myspace page or github’s user readme.md
- Configurations
- Everyone is different and should be able to have different settings and configs for other people, i.e. some themes may make it hard to see text / bubbles so dark themes / options and light theme / options; Changing pre defined messages to be custom; Changing the models and/or the animations for the animal etc…
Scope
I think most functionality can be expressed in an MVP just in a more raw state with less options and unique experiences. For example, configurations could be done but not completely filled out with all the different settings that would be the extension feel comfortable and nice to use. The user profiles may be hard to implement in a short time as it is almost a second application on top of the extension that needs to be able to talk to it and update its db. So for an MVP it should look like:
- An animal that can wonder around your screen perhaps with some animations or interactions with the user
- Daily coding streaks that are a pop up rather than in the User Profile
- A base website / layout for the User Profile that can be used to display different data types / graphs, this most likely will not be real data from the extension.
- Achievement / Confetti for lines writtern or passing the compile stage of coding
- Putting it on the Vs Code Marketplace
Quality Attributes
- Availability: Since it is a VS Code extension it can only be used on VS Code plugin interfaces, however this makes it distribution independent and as such making it avaliable to anyone who uses vs code or anything that implements their plugin interface.
- Modularity, Extensibility and Maintainability: There is many unique and distinct features in the extension and as such will make it easy to write modular code and as such makes the code base easy to maintain and add new features to it, for example changing the animations / spirites for the animal should be easy as changing the images (and maybe config) and the code does the rest or adding text for the animal to display is adding the text to a file.
- Interoperability: To make the User Profiles work it will have to communicate with a database / website and as such needs to be able to easily talk to other systems.
Evaluation
The project will have achieved the desired attributes if:
- It is easily avaliable to get, perferbally installing it from the vs code extension marketplace, (avaliability)
- If the User Profile was made it can access a database to get user data such as used languages or time spent, (interoperability)
- and (may be outside of MVP but) it can access the data from the extension, (interoperability)
- the text the animal can display can esaily be altered (extensibility)