PROJECT PROPOSAL
(a) Project Plan
As discussed in the Planning slides, you should identify and detail:
Goals: What problem are you trying to solve? 1-2 sentences describing your project.
The problem we are trying to solve is the lack of real time collaborative design tools. We found that whiteboards are a very useful tool to brainstorm and lay out ideas especially in a time where remote work is more common. In order for students or workers to collaborate more effectively the whiteboard will allow them to sketch out their ideas clearly and communicate ideas better.
Resources: How is your project staffed? Do you have any constraints on people’s time and availability?
Our project is staffed by four people. Our main constraints involve other classes and extracurricular activities for all four group members. After comparing our schedules, we discovered that our schedules mainly align on Wednesdays and Fridays, so we hope to get our most crucial work done during these days. Of course we must also consider the possibility of unexpected events further limiting our availability but we will make our best effort to make time and commit to meeting up together.
Risks: What project risks can you identify? How will you mitigate these?
Some project risks we can identify right now, without getting deeper into the work include: The lack of experienced developers in the tech stack used in this course (and full-stack development experience in general). We hope to mitigate this by building our experience/knowledge through the content learned in this course. We will also consult 3rd party resources (e.g. online tutorials/help from prof). The functionality of our app might vary across different platforms/environments. We hope to mitigate this by careful research and using applications like Docker to containerize our application, ensuring consistent behavior across platforms.
Milestones: Identify your sprints and deadlines (dates provided on the schedule), and a high-level plan of what to focus on for each sprint.
Sprint 1: User interface. Oct 4 - Oct 20
Our high-level plan for the first sprint is to make the user interface and come up with a robust structure for our project design.
Sprint 2: Persisting data. Oct 25 - Nov 3
Our high-level plan is to figure out what kind of data we will need to save and what databases to use to connect.
Sprint 3: Web Service. Nov 8 Nov 17
Our high-level plan is to figure out what web services we need to use, what endpoint we need to create and how to connect the database to the service to the interface. We hope to have this implemented and working by the end of sprint 3.
Sprint 4: Wrap Up. Nov 22 - Dec 1
Our high-level plan is to finish up any remaining tasks that need to be done and ensure that the app works accordingly to plan through testing. We will also smooth out any bugs and finalize the UI/UX.
(b) Requirements
As discussed in the Requirements slides, you should detail:
Problem: One or two-sentence summary of your project idea. What problem are you attempting to solve?
Our project idea is a real time collaborative whiteboard. We are trying to solve the limitation of whiteboards requiring users to be together in person if they want real time feedback. For those who need a visual aid and tool to sketch out ideas this whiteboard would provide the platform to do so.
Users: The specific group of users that would be interested in your project Include a role-based or goal-based persona suitable for your project Interview at least 2 people in that group, and summarize their feedback.
Our target user base is visual learners who work in groups and would benefit from having real time representation of their ideas drawn out in real time.
Functional Requirements: List your top requirements - what features do you think are critical? Describe in a document but also link to your issues list in GitLab (i.e. Product Backlog of unassigned issues). You should include at-least the features from the Requirement section, and anything you have identified after interviewing your users.
Critical Features
Create designs on a whiteboard with a variety of tools (e.g. pen, shapes, lines, eraser, etc.) Ability to connect designs and add text to a large canvas Save and delete whiteboards (and hence store multiple whiteboards) Create accounts with username/password login Share whiteboards with other accounts via username/URLs Keeps multiple clients synchronized, so that multiple users can share a diagram in real-time Ability to import and add images to the whiteboard Export whiteboards as different file types (e.g. pdf, png, jpg, etc.)
(c) Design
As discussed in the Architecture and Design slides, you should detail:
System Diagram: A box-and-lines diagram that shows the architecture of your application.
Non-Functional Requirements: If applicable to your project, list any non-functional requirements (system qualities related to performance, or other factors).
We want our performance to sync different user’s work in approx 0.5 sec to have better user satisfaction. We want our whiteboards to load within a reasonable amount of time upon opening them.