Skip to content
3dvkr edited this page Dec 8, 2021 · 10 revisions

Welcome to the 100Devs Task Lemon wiki!

What is Task Lemon?

Task Lemon is a course management app that facilitates teaching without a syllabus. This no-syllabus strategy is motivated by a well-observed trend that course attendance steeply drops after the first unit of a course is complete (source 1, source 2). With this approach, instructors can adapt the course's pace and materials in response to the course participants' needs, while keeping the communication and course content clear and organized.

Task Lemon has a RESTful API for the content management system built with Node.js. Course content is stored in a NoSQL database. Users can log in and interact with course content through a UI built with React. Course administrators have permission to create and edit content.

Workflow

Agile

User Stories

Each user story should define an end-to-end flow of what a user can do in the app (like a branch of functionality). Here is more general information on gathering functional and non-functional requirements.

The general format for writing a user story is:

As a (user role), I want to (goal) so that (reason).

Here are our user stories for the MVP and Post-MVP.

Tasks

The overall project is broken down into user stories. Stories are further broken into tasks, or some small action or output that would move the project forward. Team members can opt in to whichever tasks they would like. Tasks are in one of three main states: to do, in progress, and done. Tasks can also be back-logged if they are blocked, or require the completion of another task.

Spikes

A spike is timeboxed research, exploration or experimenting to generate feedback for overall project direction. The results or findings from a spike lead to more concrete and actionable tasks.

Pair programming

Pair programming is an agile software development technique in which two programmers team up together and work off of one computer. One person assumes the role of the "driver" while the other assumes the role of the "navigator". However, due to the unique nature of this project, sometimes there may be more than one person assuming a role.

The driver is responsible for writing the code while the navigator reviews the code being written and plans the strategy moving forward. The driver and navigator should be in constant communication sharing knowledge and interacting at least once every minute. Additionally, the roles should be switched frequently to allow for equal amounts of typing and work distribution.

Since 100Devs is global and remote, meeting at a single workstation is impossible. To replicate that experience, Discord can be used for communication while VSC Live Share utilized for enhanced screen-sharing. Effective pair programming should give the benefit of knowledge sharing, "on-the-go" code reviews, team-building, multiple perspectives, and collective code ownership.

To learn more about pair programming visit this link

Code reviews

Each pull request needs to be reviewed by at least one member who does not have a commit on the PR before merging.

Backlog

Things we want to implement (post-MVP):

  • Admin assigns students to cohorts
    • How to handle advanced students?
  • Recover lost password
  • Cohorts close out at the end, available but archived, open-source and public
  • Gamifying the app
  • Alumni directory - see what they're working on and possibly network with them

Questions

Things we're exploring:

  • What do users have access to? Can they see all weeks?
  • Time sensitive announcements or tasks? Suggested time to complete per task?
  • Can users add their own tasks for themselves?

General Leon notes (long-term)

  • Anki integration (backlog)
  • Collection of a user's contributions, for hiring

Specific Leon notes for this project

  • Avoid indicators of progress (ex. progress bar)
  • Transcripts of streams?
  • Links to community resources - StreamTeam reviews