The most basic version of the @dwyl App MVP feature set.
Please try it: mvp.fly.dev π
And help us to ...
- @dwyl App MVP π‘ β³ β
- Please
tryit: mvp.fly.dev π - Why? π€·ββοΈ
- What? π
- Who? π₯
- How? π»
Our goal with this
MVP
is to build the minimal usable App
that covers our basic "Capture, Categorize, Complete"
workflow.
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).
After collecting initial feedback,
we will integrate it into the main
dwyl/app
repo.
We maintain this repo
as a reference for new joiners
wanting the most basic version
to learn from.
A mobile-first hybrid task and activity (time) tracking tool.
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
Or listen to Eric Ries describe it in 3 minutes: https://youtu.be/1FoCbbbcYT8
Validate your business idea: THE LEAN STARTUP by Eric Ries: https://youtu.be/QaoVWtLX038
Building Minimal Viable Product with Michael Seibel UC Berkeley Course: https://youtu.be/m4isFputh68?t=75
How Not To Start A Startup | Michael Seibel: https://youtu.be/9tq-lTjTu2Q?t=413
We've found it tedious
to use several separate apps
for task and time tracking π€¦ββοΈ
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. π
But our hope is that
the UI/UX in the MVP
is sufficiently intuitive
that it immediately makes sense. π€
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. π
It will definitely change over time
as we use the App
and collect feedback. π¬
If you want to help make it better,
share your thoughts! π
More detail on the MVP features: dwyl/app/issues/265
This MVP has two target audiences:
-
@dwyl team to "dogfood" the basic workflow in our App.
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.
Your feedback is very much encouraged/welcome! π¬
If you find the repo interesting/useful, please β on GitHub.
And if you have any questions,
please open an issue:
app-mvp/issues β
Please visit
mvp.fly.dev
(or run the app on your localhost - see below)
and perform some actions to test the App:
- Create a todo list
item;
Note: this item is
public(anyone can see it!)
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.
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!
This MVP app uses the PETAL Stack
described in:
dwyl/technology-stack
Going through the individual feature apps listed above will give you the knowledge to understand this MVP.
If you have any coding skills
(e.g: JavaScript, Java, Python,
Ruby, PHP, SQL, etc.)
you will be able to follow along
without much difficulty
as the code is deliberately simple.
Note: You will need to have
ElixirandPostgresinstalled,
see: learn-elixir#installation and learn-postgresql#installation
Tip: check the prerequisites in: /phoenix-chat-example
On your localhost,
run the following commands
in your terminal:
git clone git@github.com:dwyl/mvp.git && cd mvp
source .env_sample
mix setupThat will load up the necessary env variables to run the app,
download the code,
install dependencies,
and create the necessary database + tables.
The line
source .env_sample
loads the
environment variables
required to run the App.
Once the mix setup command completes,
you can run the app with:
mix sOpen the App in your web browser
localhost:4000
and start your tour!
If you want to understand how to build the MVP,
please see:
BUILDIT.md
All contributions from typo fixes to feature requests are always welcome! π
Please start by:
a. Star the repo on GitHub
so you have a "bookmark" you can return to. β
b. Fork the repo
so you have a copy you can "hack" on. π΄
c. Clone the repo to your localhost
and run it! (see below) π©βπ»
For more detail, please see: dwyl/contributing
Please note that our goal with this MVP
is not to have all the features;
again, it's deliberately simple.
We will be adding lots more features
to the full
App.
If you have feature ideas, that's great! π
Please share them:
app/issues

