We chose to develop a Task List widget, designed to manage entries in a journal via a web interface.
- Planning and Design: We started by defining the structure of our JSON data and sketching the basic UI layout. We also decided on the functionalities our widget would support, such as inserting tasks.
- Implementation: We coded the main functionalities using JavaScript, ensuring that the interaction with the HTML was responsive. CSS was used to provide a user-friendly interface.
- Testing: We conducted different kinds of tests of the widget using selenium. We also conducted integration testing to ensure that all parts of the widget worked well together.
- Documentation: Throughout the development process, we maintained detailed documentation, which included code comments, usage instructions, and a description of our testing strategy.
- Review and Refinement: The final phase involved reviewing pull requests as a group.
- JSON: We initially faced challenges in managing data loading from hardcoded JSON files, which was resolved by refining our data fetching and state management logic.
- UI: Making the UI responsive required additional work refining our CSS, ensuring that the widget remained aesthetically pleasing.
- New feature: We implemented a reset button that will clear the JSON file of all its values.
- Feature for Task Input: Implemented a feature that enabled users to add more tasks, improving user interaction.
- Technical Skills: Gained a deeper understanding of JavaScript and improved CSS skills, especially in creating responsive designs.
- Problem Solving: Learned to address unexpected issues creatively.
- Team Collaboration: Enhanced our ability to work effectively as a team, distributing tasks based on individual strengths.
Strengths: The widget is extremely user friendly, as it utilizes primarily basic functions. It is also very flexible and streamlined, utilizing a more minimalistic view to not overwhelm the user. It is intuitive how to use it, there is no real ambiguity when looking at the widget to figure out how to use it (everything labeled).
Weakness: The drawback is that it can only represent 1 week worth of tasks or a task length within reason due to the inherent design of it. Another drawback is that the task categories were limited to the 3 given categories, and are unavailable for user-input. These can serve to be problematic in scenarios where people want sub-categories for better usage.
Opportunity: This could become a competitive app on the market due to its ease of use and avoidance of bloatware features. The introduction and potential popularity of this app can also popularize the features implemented in this task list for all competitive task lists.
Threat: A potential threat we came across while development was that people could add too many tasks and eventually crash the app.