Skip to content

Commit

Permalink
Readme: project ambitions and contribution info
Browse files Browse the repository at this point in the history
  • Loading branch information
jakmeier committed Dec 23, 2023
1 parent e220489 commit 1520e21
Showing 1 changed file with 106 additions and 13 deletions.
119 changes: 106 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,94 @@
# Bouncy Feet

It's the DuoLingo for shuffle dance!
A web app that assists you in learning to shuffle dance. Bouncy Feet shows you
new moves and checks if you are doing it right.

A web app that assists you in learning to shuffle dance.
The app can be installed as a Progressive Web App or just used directly like a
web page. It should work in all major browsers, on the phone or on laptops and
workstations. You only need a camera which you can position in a way where your
full body is clearly visible while you dance.

1. Learn new moves through videos integrated in the app.
2. Practice on your own.
3. Record your dance with the app and it will mark errors.
4. Share your recording with friends.
## Why would I need an app for dancing?

Let's be honest, dancing is best without interacting with your phone or laptop.
Just play some music and go. The app is designed with this principle in mind and
tries to support you without getting in your way.

**Easy Review**: After a dance, you can review your video recording. Bouncy Feet
enhances the recording with timestamps and body positions it detects on the
beat. If you like the video, save and share it. Otherwise, delete the video and
it is gone forever. (BouncyFeet is perfectly private and never uploads the
video, everything is done on your device only.)

**Browse a Collection of Moves**: An ever-growing list of shuffle moves are
available in the app to inspire you.

**Stay Motivated**: Incremental statistics counting how many steps you danced in
your lifetime using the app motivates you to stay fit and active.

**And more in the future**:
- Attach video tutorials to moves in the collection.
- Combine moves to choreographies. Learn them with an interactive audio guide.
Share the choreography with friends to practice at home and next time you meet
you will be able to dance it together in synchrony.
- Easy video editing with filters and custom 3D models dancing next to you or
instead of you.

**But never forget**: Dancing is physical, not digital. An app will not replace
your visit at the dance studio where you meet your friends and sweat alongside
them. Bouncy Feet the app works best when you forget that it's even recording
you while you dance. Bouncy Feet is designed to be useful to you while
minimizing the screen time of you using it.

## About the Project

At its core, Bouncy Feet is an attempt of myself to create a product which
people actually want to use. Including myself as user number one.

In October 2023, I quit my fulltime job to work on my own terms. Bouncy Feet had
not crossed my mind, yet. But after a few weeks this idea of a dance app came to
me and I decided to start working on it for the majority of my time while doing
other gigs on the side to keep my personal finances in balance.

It is unclear where this project will end up. But right now, I am convinced the
first version of the app will be free for everyone and without adds. It might
make sense to add monetization later. But only if this ever turns from a fun
project to something that needs to be profitable to put food on table for me and
others. But that is a far dream and too unlikely at this moment to be worth
thinking about too much.

Regarding tech, the project uses [SvelteKit](https://kit.svelte.dev/) for
everything UI, [MediaPipe](https://developers.google.com/mediapipe) with
pre-trained models for basic pose detection, and Rust for the core business
logic (dance detection).

## Progress Status

- 23 Dec 2023: Update README to better describe the project ambitions. The
techstack with SvelteKit + Rust to create a PWA is mostly locked in now.
- 20 Nov 2023: Started using [SvelteKit](https://kit.svelte.dev/).
- 18 Nov 2023: Initialized repository under the name `bouncy-feet`.
- Oct - Nov 2023: Tried out the core concepts in a
[prototype](https://github.com/jakmeier/dance-app-poc-playground).

# Open-Source Commitment

I am a strong proponent of open-source software for two main reasons.

1. I personally love it when I am able to look at the source code of software I
use. It can be a great learning experience to look at real code and the
process of how that code came to be.
2. I admire the community aspect of successful open-source projects. People use
it to learn and practice their favorite technologies beyond what would be
possible at a day-to-day job. This is the perfect counterweight to big
cooperations in the software space.

With this mindset, I want this project to be as open and welcoming as possible.
Even in the unlikely event where I want to monetize some form of Bouncy Feet, I
would still want to keep all the source code free and open-source. I would want
to monetize the content inside the app (think dance courses), if anything. But
access to the software itself should always remain free.

## License

This project is developed under permissive licenses. You may freely reuse the
Expand All @@ -32,11 +103,33 @@ unsuitable for your project, please open an issue.

## Contribution

The current status is **source available** without explicit encouragement for
external contributions. I am happy to answer pull requests and issues but please
set your expectation right, there can be delays.
The current status is **source available** without proper documentation that
would be necessary to encourage a wider community to contribute. Hopefully, this
will improve over time. But if the lack of documentation does not bother you, I
am happy to answer pull requests and issues if you open them.

If you are interested in helping out by implementing features, the first place
to look is the list of [issues with contribution
encouraged](https://github.com/jakmeier/bouncy-feet/issues?q=is%3Aissue+is%3Aopen+label%3A%22contribution+encouraged%22).
These are typically long-term features which I know I want in the app eventually
but I don't have the capacity to work on them right now. If you want to work on
them, I will give my best to help you help me and make it a pleasant
collaboration experience for both of us.

But the list of issues is never complete and there are certainly other ways to
contribute, too. If you are interested in getting involved but don't see an
issue that suits you, please drop me a quick message at [email protected] and
describe your level of experience with Rust/Svelte and let me know what kind of
contribution interests you.

I myself have decent experience using Rust and can also mentor you a bit on your
journey learning it if that's what you are looking for. But with Svelte, I am
very new and could probably use some mentoring by you. :P Or we can learn it
side by side, you don't need to be professional with Svelte to contribute.

Oh and there are certainly non-technical ways to contribute, too! If you want to
help out with the dance content, or with translations, or something else, please
drop me a message [email protected] and I am more than happy to discuss
further.


Hopefully, the project will mature to a point where external contribution is
actively encouraged. But at this state of the project, there is not enough
stable code in the repository to justify collaboration with strangers, which
always comes with an overhead.

0 comments on commit 1520e21

Please sign in to comment.