rosekamallove/youtemy
A great way to learn from YouTube courses without any distractions and the ability to enroll in courses and track them with a daily streak to become more consistent.
YouTemy is a platform to accelerate learning from YouTube courses. Users can learn from YouTube courses without any distractions and have the ability to enroll in courses and track them with a daily streak to become more consistent.
๐ Tech Stack
YouTemy is a web app built with the following:
๐ค CI/CD
Deployment to Firebase is automated and controlled through GitHub Actions.๐บ Page Hierachy
-
Pages:
-
Landing Page (Middleware goes here if not logged in)
- LogIn or Contribute
-
Dashboard:
- Courses currently enrolled
- Streak Tracker
- Daily Goal (Progress)
- All-time Progress (Across Courses)
-
- Different Tracks
- Web-Dev Track
- HTML\CSS
- JavaScript
- React/Vue/Angular
- Node.JS / Express
- Web-Dev Track
- Different Tracks
-
User Dashboard
- Courses currently enrolled in
- Charts for the progress
- Tutorial Hell Warnings
- Maybe percentile
- Suggested next course
-
- Search for new Courses on Youtube
- Add them to bookmrks or enroll in them
-
Settings
- Delete all Bookmarks
- Delete all enrolled courses
-
Folder Strucure
. โโโ src โย ย โโโ App.js โย ย โโโ Components โย ย โย ย โโโ Footer โย ย โย ย โย ย โโโ Footer.css โย ย โย ย โย ย โโโ Footer.js โย ย โย ย โโโ Navbar โย ย โย ย โย ย โโโ Logo.png โย ย โย ย โย ย โโโ Navbar.css โย ย โย ย โย ย โโโ Navbar.js โย ย โย ย โโโ PrivateRoute.js โย ย โโโ Pages โย ย โย ย โโโ BookmarksPage โย ย โย ย โย ย โโโ BookmarksPage.css โย ย โย ย โย ย โโโ BookmarksPage.js โย ย โย ย โโโ CoursesPage โย ย โย ย โย ย โโโ CoursesPage.css โย ย โย ย โย ย โโโ CoursesPage.js โย ย โย ย โโโ Dashboard โย ย โย ย โย ย โโโ Dashboard.css โย ย โย ย โย ย โโโ Dashboard.js โย ย โย ย โโโ ExplorePage โย ย โย ย โย ย โโโ ExplorePage.css โย ย โย ย โย ย โโโ ExplorePage.js โย ย โย ย โย ย โโโ PlaylistItem.js โย ย โย ย โย ย โโโ PlaylistsList.js โย ย โย ย โย ย โโโ SearchBar.css โย ย โย ย โย ย โโโ SearchBar.js โย ย โย ย โโโ SettingsPage โย ย โย ย โย ย โโโ SettingsPage.css โย ย โย ย โย ย โโโ SettingsPage.js โย ย โย ย โโโ VideoPlayer โย ย โย ย โโโ RenderWithTracking.js โย ย โย ย โโโ RenderWithoutTracking.js โย ย โย ย โโโ VideoPlayer.css โย ย โย ย โโโ VideoPlayer.js โย ย โโโ UserContext.js โย ย โโโ apis โย ย โย ย โโโ demoObject.json โย ย โย ย โโโ getVideos.js โย ย โย ย โโโ youtube.js โย ย โโโ css โย ย โย ย โโโ App.css โย ย โย ย โโโ index.css โย ย โโโ firebase.js โย ย โโโ firestore โย ย โย ย โโโ addBookmarks.js โย ย โย ย โโโ addCourse.js โย ย โย ย โโโ updateCourse.js โย ย โโโ index.js โโโ yarn.lock
๐ท Snapshots of the Hosted Projects
โ Running the Project
Starting the Dev Server
-
Clone the repository to your local system.
https://github.com/rosekamallove/youtemy -
Firebase API Setup:
-
Go to Firebase Console and follow the steps to create a new Firebase project.
-
Select
</>, Add a project via Code. -
Create a new web app using the steps provided on the console.
-
You will recieve a firebasConfig object with the first paramter as API key. Copy it, which will look something like:
cosnt firebaseConfig = { apiKey: "process.env.REACT_APP_FIREBASE", authDomain: "AUTH_DOMAIN", projectId: "PROJECT_ID", storageBucket: "STORAGE_BUCKET", messagingSenderId: "*************", appId: "******************************", measurementId: "*************" };
-
After you get the Firebase API key, create a .env file in the root folder of the repository
-
Insert the folowing snippet in the file
REACT_APP_FIREBASE="API_KEY_HERE"
-
-
Youtube API Setup:
-
Go to the following link and set up a new project from https://console.cloud.google.com/apis/
-
Go the the project's dashboard and click on Enable APIs and Services
-
Select Youtube Data API v3
-
Click on Credentials to create new credentials for the API client
-
Select API Key out of the 3 options available (API Key, OAuth Client ID, Service Key)
-
A new API key will be generated. Copy it in the .env file.
REACT_APP_YOUTUBE="API_KEY_HERE"
-
-
Ensure that .env is added in .gitignore file.
-
In the root folder and enter the following commands in the CLI
npm i or yarn npm start or yarn start -
If you wish to contribute, either look for issues already created or create an issue if you have a new idea.
๐จโ๐ฌ Contributors
Contribution list made with contrib.rocks.





