Mvp
📲 simplest version of the @dwyl app
Install / Use
/learn @dwyl/MvpREADME
@dwyl App MVP 💡 ⏳ ✅
The most basic version of the @dwyl App MVP feature set.
Please try it: mvp.fly.dev 🙏
And help us to ...
<a href="https://agilevelocity.com/product-owner/mvp-mmf-psi-wtf-part-one-understanding-the-mvp"> <img src="https://user-images.githubusercontent.com/194400/65666966-b28dbd00-e036-11e9-9d11-1f5d3e22258e.png" width="500" alt="MVP Loop"> </a> </div> <br />Why? 🤷♀️
Our goal with this MVP is to build the minimal usable App <br /> that covers our basic "Capture, Categorize, Complete" workflow. <br /> It is well-documented, tested and easy for a beginner to run & understand.
We shipped the App to Fly: mvp.fly.dev and use/test it (internally). <br /> After collecting initial feedback, we will integrate it into the main dwyl/app repo.<br /> We maintain this repo as a reference for new joiners <br /> wanting the most basic version to learn from.
<!-- going to move this somewhere else ... ## But _Why_...? Our [why](https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action) for building this MVP (and subsequent [App](https://github.com/dwyl/app)) is that we felt the [_pain_](https://github.com/dwyl/app/issues/213#issuecomment-650531694) of _not_ having it!  If you have feel the pain of lacking focus/priority, not knowing what to work on now/next or suffer from [procrastination](https://github.com/nelsonic/nelsonic.github.io/issues/849), then you too have the problem we ~~have~~ _are fixing_! We consider the problem of knowing what to work on, how to prioritise work and keep track of it to be a ["keystone"](https://en.wikipedia.org/wiki/Keystone_(architecture)#Metaphor) to what we want to build in the [future](https://github.com/dwyl/phase-two). If you _agree_, please let us know. ## Startup Ideas? 💡 We _love_ talking about startup ideas. ❤️ 🎉 <br /> If you are new to this, we recommend watching the following [YC](https://www.ycombinator.com/) videos: + Jared Friedman's _How to Get Startup Ideas_: [youtu.be/uvw-u99yj8w](https://youtu.be/uvw-u99yj8w?t=424) + Michael Seibel's _How to Get and Test Startup Ideas_: [youtu.be/vDXkpJw16os](https://youtu.be/vDXkpJw16os) + Kevin Hale's _How to Evaluate Startup Ideas_: https://youtu.be/DOtCl5PU8F0 <br /> -->What? 💭
A mobile-first hybrid task and activity (time) tracking tool.
<!-- with built-in (basic) team **communication**. -->MVP? 🚧
A Minimum Viable Product (MVP), as its' name suggests, is the minimum we can do to test the idea.
If you're new to MVPs, the Wikipedia article is a good starting point: wikipedia.org/wiki/Minimum_viable_product <br /> Or listen to Eric Ries describe it in 3 minutes: https://youtu.be/1FoCbbbcYT8 <br /> Validate your business idea: THE LEAN STARTUP by Eric Ries: https://youtu.be/QaoVWtLX038 <br /> Building Minimal Viable Product with Michael Seibel UC Berkeley Course: https://youtu.be/m4isFputh68?t=75 <br /> How Not To Start A Startup | Michael Seibel: https://youtu.be/9tq-lTjTu2Q?t=413
Two Apps in One ✌️
We've found it tedious to use several separate apps for task and time tracking 🤦♂️ <br /> and think it's logical to combine the functionality. This MVP combines two apps into one. 💡
In our journey to understand the features we want from first principles, we built the two separate apps:
- Todo list: github.com/dwyl/phoenix-liveview-todo-list
- Stop Watch (Timer): github.com/dwyl/phoenix-liveview-stopwatch
We encourage you to read
and understand the individual feature Apps
before
trying to run the MVP. 👀<br />
But our hope is that
the UI/UX in the MVP
is sufficiently intuitive
that it immediately makes sense. 🤞
Proposed MVP UI/UX 💡
This is our wireframe UI/UX we used as the guide to create the MVP functionality:

The idea is a todo list that tracks how much time we spend on a task.
It's deliberately "basic" and "ugly" so we don't focus on aesthetics. 🚀<br /> It will definitely change over time as we use the App and collect feedback. 💬<br /> If you want to help make it better, share your thoughts! 🙏
More detail on the MVP features: dwyl/app/issues/265
<br />Who? 👥
This MVP has two target audiences:
-
@dwyl team to "dogfood" the basic workflow in our App. <br /> It's meant to work for us and have just enough functionality to solve our basic needs.
-
Wider community of people who want to see a fully-functioning
Phoenixapp with good documentation and testing.
Longer term, the MVP will help future @dwyl team members get up-to-speed on our App & Stack much faster.
Feedback! 🙏
Your feedback is very much encouraged/welcome! 💬<br /> If you find the repo interesting/useful, please ⭐ on GitHub. <br /> And if you have any questions, please open an issue: app-mvp/issues ❓ <br />
Perform Some Actions in the App 📱
Please visit
mvp.fly.dev
(or run the app on your localhost - see below) <br />
and perform some actions to test the App:
- Create a todo list
item; <br />Note: this item is
public(anyone can see it!) <br /> If you wantprivateitems you need to login. - Start a
timerfor the (public)item - Stop the
timerfor theitem(pressstart) - Mark the
itemasdone(press/tap thecheckboxto the left of theitem.text) - Click on the
donetab andarchivetheitem(it will disappear) - Click on the
archivedtab and you will see your archived item - Create a new (
public)item. - Start a
timerfor the (public)itemand leave it running - Login using your
GitHuborGoogleaccount. - Create a todo list
itemwhile logged-in with atag. - Start a
timerfor theitem - Stop the
timer - Resume the
timerthat you just stopped. - Create a new (
private) todo listitemwhile logged-in with a differenttag - Start a
timerfor theitem - Open a second web browser and watch the realtime sync!
- Click on the first private
itemtagand see the filtered list ofitemswith thattag - Click on the
activetab or go back in the browser - Mark the first
itemyou created asdone - Edit the remaining
itemtext for the timer that is already running. - Mark the (
private)itemasdoneand see the time it took. Archivetheitem- Click on the
tagslabel on the navbar to check thetags created. - Go back
- Logout of the app
- View the (
public)itemyou created earlier with thetimerstill running.
That's it.
The MVP in a nutshell.
Here's a GIF
if you're low on time:

The GIF showcases the (todo list) items,
tag filtering and timers
being synched across 2 browsers
(one desktop and another mimicking mobile)
in realtime.
How? 💻
Our goal is to document as much of the implementation as possible, so that anyone can follow along.
If you spot a gap in the docs, please let us know!
Tech Stack? 🧰
This MVP app uses the *
