Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Add personas, use cases, user stories, and requirements #808

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 132 additions & 0 deletions docs/design/personas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Personas

## 1. **Sophie - The Small Business Owner**

- **Age:** 32
- **Background:** Owns a small e-commerce website.
- **Tech-savviness:** Moderate; familiar with basic software and e-commerce
tools.
- **Needs:** A reliable backup system, easy-to-use interface, and affordable
rates.
- **Pain Points:** Previous backup solutions were too complicated or pricey.
Lost data once due to a failed backup.
- **Goals:** Ensure that all her business data is backed up securely, easily
retrieve data when needed.

## 2. **Arjun - The IT Manager**

- **Age:** 41
- **Background:** IT Manager for a mid-size company with 200+ employees.
- **Tech-savviness:** High; knows ins and outs of most enterprise software.
- **Needs:** A scalable backup solution, deduplication to save space, advanced
security features.
- **Pain Points:** Dealing with multiple backup tools for different types of
data, storage limitations.
- **Goals:** Centralize the backup process, ensure quick data restoration, and
streamline IT operations.

## 3. **Elena - The Freelancer**

- **Age:** 29
- **Background:** Freelance graphic designer.
- **Tech-savviness:** Moderate; uses specific tools for her design work.
- **Needs:** A simple backup solution that can handle large files, automatic
backups.
- **Pain Points:** Lost a project once due to a hard drive crash, cloud storage
subscriptions becoming too expensive.
- **Goals:** Protect her portfolio and client projects, ensure she doesn't lose
time redoing lost work.

## 4. **Martin - The Retiree**

- **Age:** 67
- **Background:** Retired school principal, now writes memoirs and short
stories.
- **Tech-savviness:** Basic; uses a computer primarily for word processing and
web browsing.
- **Needs:** A straightforward backup tool, clear instructions, preferably with
visual guides.
- **Pain Points:** Complicated tech jargon, fears of losing his writings.
- **Goals:** Keep his digital memories and writings safe for future generations.

## 5. **Nadia - The Academic Researcher**

- **Age:** 35
- **Background:** PhD in Biology, conducts extensive research with large
datasets.
- **Tech-savviness:** Moderate-to-High; adept with research tools and databases.
- **Needs:** A backup solution that can handle diverse file types, easy data
retrieval, metadata preservation.
- **Pain Points:** Managing diverse datasets, ensuring long-term data
preservation.
- **Goals:** Secure her research, share datasets without loss of fidelity,
compliance with academic data storage norms.

## 6. **Liam - The Digital Artist**

- **Age:** 23
- **Background:** Digital artist and animator who regularly works on large
projects.
- **Tech-savviness:** High; familiar with advanced design tools and software.
- **Needs:** A backup system that supports large file formats, auto-syncing, and
version control.
- **Pain Points:** Slow upload speeds, backup solutions not supporting all file
formats.
- **Goals:** Protect his art, easily retrieve older versions of his work.

## 7. **Maria - The Non-Profit Organizer**

- **Age:** 45
- **Background:** Runs a non-profit focused on education for underprivileged
children.
- **Tech-savviness:** Moderate; basic office software and social media.
- **Needs:** Affordable backup solutions, secure storage for donor data, easy
collaboration tools.
- **Pain Points:** Limited budget, ensuring data privacy.
- **Goals:** Keep organizational data safe, access backups from remote
locations.

## 8. **Takumi - The Independent Game Developer**

- **Age:** 28
- **Background:** Develops indie games, works from home.
- **Tech-savviness:** Very high; proficient in various programming languages and
game engines.
- **Needs:** Large storage capacities, high-speed backups, integration with
development environments.
- **Pain Points:** Version conflicts, loss of game assets or code.
- **Goals:** Streamlined development process, protection against data loss.

## 9. **Fatima - The College Student**

- **Age:** 20
- **Background:** Studying Computer Science.
- **Tech-savviness:** Moderate-to-high; regularly uses coding platforms and
academic tools.
- **Needs:** Affordable backup solutions, mobile access to backups.
- **Pain Points:** Previous backup solutions were too complicated or unreliable.
- **Goals:** Secure academic projects, quick data restoration during exam times.

## 10. **Albert - The Travel Blogger**

- **Age:** 38
- **Background:** Travels the world and documents his experiences through photos
and writing.
- **Tech-savviness:** Moderate; skilled in content creation tools.
- **Needs:** Backup solutions accessible from different parts of the world,
mobile-friendly.
- **Pain Points:** Lost photos/videos from past trips, connectivity issues.
- **Goals:** Safeguard memories, quick uploads even from remote areas.

## 11. **Aisha - The Integrative Developer**

- **Age**: 28
- **Background**: Software Developer at a mid-sized tech company
- **Tech-savviness**: Advanced
- **Needs**: Robust and reliable library, clear documentation, integration
examples, extensive customization.
- **Pain Points**: poor documentation, integration conflicts, performance
issues.
- **Goals**: Aims to develop scalable and feature-rich applications. Seeks
reliable and efficient external libraries to enhance her software's
capabilities without reinventing the wheel.
124 changes: 124 additions & 0 deletions docs/design/requirements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
# Requirements

1. **Automated Backup Scheduling**

- The system should allow for automated backups at specified intervals
(daily, weekly, monthly, etc.).

1. **Easy Restoration**

- Users should be able to quickly and easily restore data from the backups,
preferably with a one-click solution.

1. **Selective Backup**

- The solution should allow users to select specific data sets or files for
backup.

1. **Centralized Management Dashboard**

- A unified dashboard where users (especially those managing multiple
systems) can oversee all backups.

1. **User Access Control & Role-based Permissions**

- Different levels of access and permissions to ensure that data integrity
and security are maintained.

1. **Large File Handling without Compression Loss**

- The system should handle the backup of large files while maintaining their
original quality.

1. **Auto-sync Feature**

- A feature that automatically syncs and backs up directories or specified
data.

1. **Guided Backup Process**

- For users who are not tech-savvy, a step-by-step guide to backing up data.

1. **Efficient Deduplication Process**

- To ensure storage is used efficiently by avoiding duplicate backups of
identical files.

1. **Shareable Backup Links**

- Generation of secure links to backup datasets/files for sharing.

1. **Version Control**

- The system should keep track of different versions of backed-up files,
allowing users to revert if needed.

1. **Bulk Backup**

- Allow users to backup large sets of data or entire directories at once.

1. **Strong Encryption and Data Security**

- All backed-up data, especially sensitive information, should be encrypted
and stored securely.

1. **Remote Access Capability**

- Users should be able to access the backup solution from different locations
or devices.

1. **Integration with Other Platforms**

- E.g., Code repositories, blogging platforms, etc.

1. **Rapid Data Recovery**

- Fast restore features for urgent data recovery needs.

1. **Offline Backup Queuing**

- Allow backups to be initiated offline and processed once connectivity is
available.

1. **High-speed Data Uploads**

- Efficiently handle and quickly upload large files or data sets.

1. **Documentation Clarity**

- The backup solution library should have clear and comprehensive
documentation. This will enable developers like Aisha to integrate the
library seamlessly.

1. **Customization Options**

- The library should provide a variety of settings and configurations that
developers can adjust, ensuring it fits various software's unique
requirements.

1. **Test Environment**

- The backup solution should offer a sandbox or test mode. This helps
developers to test the library's functionalities without affecting real
data.

1. **Active Support Community**

- An active forum or community where developers can post questions, share
experiences, and offer solutions. Quick response times are crucial.

1. **Error Handling**

- The library should be designed with robust error handling and should
provide descriptive error messages. This aids developers in diagnosing
integration or functionality issues.

1. **Compatibility**

- Ensure the core library is compatible with a range of programming languages
and frameworks to cater to a diverse developer base.

1. **Scalability**

- As software may grow and handle more data, the backup library should be
scalable to accommodate increasing data without performance bottlenecks.
Loading