{% if name == username %}
<form action="/uploadsong" method="post" enctype="multipart/form-data">
+ <h2>Upload a new song</h2>
<div class="upload-form">
- <input type="file" name="song" accept=".mp3"></input>
+ <label for="song">mp3 File</label>
+ <input type="file" name="song" accept=".mp3" required></input>
</div>
<div class="upload-form">
- <input type="text" name="title"></input>
+ <label for="title">Title</label>
+ <input type="text" name="title" required></input>
</div>
<div class="upload-form">
- <input type="text" name="description"></input>
+ <label for="title">Description (optional)</label>
+ <textarea name="description"></textarea>
</div>
<div class="upload-form">
<input type="submit" value="Upload"></input>
</form>
{% endif %}
+<h2>Songs</h2>
+
{% for song in songs %}
<div class="song">
<div class="song-title">{{ song["title"] }}</div>
-- song database
-- user folders outside of static tree (custom route)
-- user folders use id instead of name
-- save songs with id for name
- validate song files
- song collaborators
- song tags
- delete song
+- edit song info
+- user bio
+- edit user bio
+
+- javascript song player
- admin account(s)
- logging
+- css/design
+
URL
secrethideout.net
sneaky.place