Reflection: Robert Schaedler III - SSW-345-Team-5/Discord-Bot GitHub Wiki

Reflection

Design

When looking into design methods for the project, it was most helpful to reference API documentation and past experience in the area. I prior experience with NodeJS, Javascript, and RESTful APIs which I relied on heavily throughout the project to work with Javascript promises to help create the Discord bot. I also used prior experience in Python and Pandas to display the charts and deal with data analytics for generating stock reports.

The most difficult aspect of the project was dealing with Javascript promises and synchronizing certain key events of creating a stock report. My primary experience is with NodeJS using Typescript and rxjs Observables so there was a bit of a learning curve when transitioning to vanilla JS.

In the future, I might try to implement a more object oriented design from the start, however this may not be possible since certain structure of the project was realized during design and implementation and refactoring occurred periodically to better organize and structure the bot.

Implementation

When implementing the bot some helpful tools include VSCode Liveshare and GitHub Issue/Kanban Boards. Both were used to facilitate efficient pair programming and task delegation throughout the duration of the project.

Again, synchronizing events on the bot was a difficult task and we ran into some issues when pair programming or working concurrently on the bot since the same tokens were used. On a larger scale we would have most likely created a designated set of development keys and maintained a secure set on deployment through a CI/CD service such as Travis or GitLab CI/CD.

In the future I would like to use more CI/CD tools to fully test and deploy a project in order to have some what of an end-to-end dev process where code is validated and deployed to a staging/production environment.

Process

The Kanban board was particularly helpful in keeping the project organized and assigning/managing tasks between members.

There was not necessarily a difficult part of the Kanban boards, however, in the beginning I feel we could have started earlier with assigning/creating tasks to track changes.

I would definitely use this feature in the future for issue tracking/task delegation.