basecamp-essentials
Opinionated features to increase your productivity with basecamp
Features
- Reply
- Reply all
- Clear my temporary comment
- Greater Boost
Tools
- Typescript
- Jquery
- Webpack
- ESLint
- Prettier
Architecture
while(true)
renders ----> Dom
Event Handlers <---- Dom
sleep(2000)
Ps:. (Basecamp Essentials) features will always work regardless of whether the page has been loaded or not. The architecture tries to keep its operation always updated so that the user does not have to update the page every time. The project was designed in this way to maintain a good user experience.
Event Handlers on loops can cause MemoryLeak, but its nmecessary to make dynamic things works. But, be careful not to forget to unsubscribe before registering a new handler.
What problems can you help
- [refactor] Remove SetInterval and use recursive function to prevent memoryleak
- [refactor] Organize content.ts Separate renders from eventHanlders at the same file, or create a filer per strategy and content.js will be our bootstrap
- [refactor] Remove unused script from package.json
- [test] Implement tests. PLease read this before
- [feat] Hide items from the "heys" list that do not make direct reference
- [refactor] Improve the performance by reusing known nodes
- [fix] Reply is displayed on some basecamp pages that have no relation to the "chat" feature
- [fix] Boost size does not work sometimes
- [fix] (Solved) "Reply all" is very very slow after some time
- [feat] Add more or all available emojis
- [feat] Improve Chrome Extension configuration and presentation, Bootstrap nav is breaking
How to contribute
- Open an "issue" requesting a feature or reporting a problem
Running the project
yarn
yarn start
- Open on Chrome Extensions
- Click on "load without compression"
- Select dist folder from project
- Open Basecamp and see how it works