This is the developer documentation for the Tuber application, which allows users to save their favorite YouTube videos with additional useful information. The developer used the Atom text-editing platform, along with git and other software to write and test the code. The developer wrote the client facing code using HTML, SCSS (CSS), React and JavaScript (the API was written using Express.js).
The Github repositories for this project are located here:
The deployed sites for this project are located here:
Noun: Avid YouTube user | NOT a potato Tuber was developed with the avid tuber as the first priority. A tuber can use this application to save information about his/her favorite YouTube videos, all in one easy-to-access and easily manipulated website.
Tubers can custom save the artist's name, title, album, a description and the URL for their favorite video. Any correctly entered "YouTube format" URL allows that video to played directly on the application, and incorrectly entered URLs lead to a pleasant surprise.
Tuber user stories:
- As a first-time user, I want to create an account.
- As a user, I want to sign in.
- As a user, I want to change my password.
- As a user, I want to sign out.
- As a returning user, I want to see a listing of all of my previously saved videos.
- As a user, I want to see details of or watch one of my previously saved videos.
- As a user, I want to create new videos.
- As a user, I want to update previously saved videos.
- As a user, I want to delete previously saved videos.
- As a user, I want to select whether videos autoplay on
show
(stretch). - As a user, I want to select whether videos loop in
show
window (stretch). - As a user, I want to sort videos by fields in
index
window (stretch). - As a user, I want to search fields for strings in
index
window (stretch). - As a user, I want to select "favorite" videos (stretch).
The following technologies were used to develop this application:
- HTML5.
- SCSS.
- Bootstrap.
- JavaScript.
- Express.js
- Node.js
- MongoDB
- Mongoose
- Atom.
- Git.
- Github.
- Heroku (removed 03.2024).
- npm.
- Curl.
- AJAX.
- Render
Development for this application started by building an initial project scope, which was modified as necessary during development:
- Developed application idea, and determined diagrammed ERDs for successful creation.
- Scaffolded database tables for API.
- Developed wireframes for desired user interface.
- Made considerations for how various in-app screens would be displayed.
- Placed heavy emphasis on meeting minimum viable product first. Initially applied minimal SCSS to ensure that the user experience met requirements, and additional styling was added near completion as time permitted.
- Placed heavy emphasis on performing new tasks in new branches and making regular commits. Branch names explain what changes were made on that branch, and often include just one commit.
Users who wish to download and improve upon this application may fork and clone from the public Github client repository here and the public API repository here.
After forking and cloning the client repository, continue personalizing your set up by following the Installation steps provided here, beginning at 6. Replace the "homepage" field in package.json with your (public) Github account name and repository name.
.
After forking and cloning the API repository, continue personalizing your set up by following the Installation steps provided here, beginning at 7. Install dependencies with npm install.
.
Alternatively, you may choose to initialize your own repository by starting at step 1.
of either list of Installation steps.
The following improvements could be made:
- Improvements to interface for more user-friendly experience.
- Modals for user inputs.
- Button, input, other UI improvements on show, create and edit pages.
- Video categories/custom fields.
- Responsive design.
- Help documentation.
- Create user profiles to enhance/personalize each user's experience, and to enable interaction between user accounts (eg. view another user's favorite videos and add to their own favorites).
- Sorting saved videos by field.
- User settings for "autoplay" and "loop".
- Search bar to find by any saved info.
- Personal video rating scale (1-10).
- Provide additional pseudocode for understanding what is being done.
- Integrate YouTube API for additional functionality.