Educational Angular project created for Rolling Scopes School. The app provides a YouTube-like search experience with custom cards, filtering, sorting, and a detailed view.
- Search YouTube videos via API
- Sorting and filtering of search results
- Detailed view with date-based visual cues
- Custom cards (admin page)
- Authentication guards and login flow
- NgRx store for search and custom items
- Angular 15
- RxJS
- NgRx
- Angular Material
- SCSS
- Node.js 16+
- Angular CLI 15+
npm installnpm startnpm run start:localApp runs at http://localhost:4200/.
npm run buildnpm run deploynpm start— dev servernpm run build— production buildnpm run watch— dev build with watchnpm test— unit tests (Karma)npm run lint— lintingnpm run deploy— GitHub Pages deploy
- API key is read from
src/environments/environment.tsviaenvironment.youtubeApiKey. - Local secret file:
src/environments/environment.local.ts(ignored by git). - Create your local secret file from
src/environments/environment.local.example.tsand set your key. - Run
npm run start:localto use local secrets. - For production, prefer a backend/proxy because frontend keys are still visible in browser requests.
- Add repository secret
YOUTUBE_API_KEYinSettings → Secrets and variables → Actions. - CI workflow
.github/workflows/build.ymlgeneratessrc/environments/environment.local.tsfrom this secret.
src/
├─ app/
│ ├─ auth/
│ ├─ core/
│ ├─ redux/
│ ├─ shared/
│ └─ youtube/
├─ assets/
├─ styles.scss
└─ main.ts
- This repository is intended for learning purposes.
- Some routes are protected with auth guards.
- GitHub Pages uses hash routing in this project (for example:
/#/main) to avoid 404 on direct route refresh.