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
try
it: 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
Phoenix
app 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 wantprivate
items you need to login. - Start a
timer
for the (public
)item
- Stop the
timer
for theitem
(pressstart
) - Mark the
item
asdone
(press/tap thecheckbox
to the left of theitem.text
) - Click on the
done
tab andarchive
theitem
(it will disappear) - Click on the
archived
tab and you will see your archived item - Create a new (
public
)item
. - Start a
timer
for the (public
)item
and leave it running - Login using your
GitHub
orGoogle
account. - Create a todo list
item
while logged-in with atag
. - Start a
timer
for theitem
- Stop the
timer
- Resume the
timer
that you just stopped. - Create a new (
private
) todo listitem
while logged-in with a differenttag
- Start a
timer
for theitem
- Open a second web browser and watch the realtime sync!
- Click on the first private
item
tag
and see the filtered list ofitems
with thattag
- Click on the
active
tab or go back in the browser - Mark the first
item
you created asdone
- Edit the remaining
item
text for the timer that is already running. - Mark the (
private
)item
asdone
and see the time it took. Archive
theitem
- Click on the
tags
label on the navbar to check thetag
s created. - Go back
- Logout of the app
- View the (
public
)item
you created earlier with thetimer
still 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
Elixir
andPostgres
installed,
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 [email protected]:dwyl/app-mvp.git && cd app-mvp
source .env_sample
mix setup
That 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 s
Open 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