Files
spotlightcam/docs/archive/RESOURCES.md
Radosław Gierwiało 975d258497 docs: reorganize documentation structure for better context efficiency
Reorganization changes:
1. Moved from root → docs/:
   - QUICKSTART.md
   - QUICK_TEST.md
   - WEBRTC_TESTING_GUIDE.md

2. Created docs/archive/ and moved archival files:
   - COMPLETED.md (completed tasks archive)
   - PHASE_1.5.md (historical phase documentation)
   - RESOURCES.md (learning resources)
   - SECURITY_AUDIT.md (security audit)
   - ADMIN_CLI.md (CLI documentation)

3. Updated all references in:
   - README.md
   - docs/CONTEXT.md
   - docs/TODO.md
   - docs/SESSION_CONTEXT.md
   - docs/DEPLOYMENT.md
   - docs/QUICK_TEST.md

Active docs/ now contains only essential files:
- SESSION_CONTEXT.md (primary for context restoration)
- TODO.md
- CONTEXT.md
- ARCHITECTURE.md
- DEPLOYMENT.md
- MONITORING.md
- QUICKSTART.md
- QUICK_TEST.md
- WEBRTC_TESTING_GUIDE.md

Benefits:
- Reduced token usage when reading docs/ for context
- Clear separation between active and archived documentation
- Better organization for future maintenance
2025-11-20 22:42:06 +01:00

295 lines
11 KiB
Markdown

# Resources - spotlight.cam
**Learning resources, documentation links, and useful references**
---
## 📚 Official Documentation
### Backend (Node.js + Express)
- **Express.js** - https://expressjs.com/
- Best practices: https://expressjs.com/en/advanced/best-practice-performance.html
- Security: https://expressjs.com/en/advanced/best-practice-security.html
- **Node.js** - https://nodejs.org/docs/
- **Socket.IO** - https://socket.io/docs/v4/
- Rooms: https://socket.io/docs/v4/rooms/
- Emit cheatsheet: https://socket.io/docs/v4/emit-cheatsheet/
### Database
- **PostgreSQL** - https://www.postgresql.org/docs/
- Best practices: https://wiki.postgresql.org/wiki/Don't_Do_This
- Performance tips: https://wiki.postgresql.org/wiki/Performance_Optimization
- **Prisma** - https://www.prisma.io/docs
- Schema reference: https://www.prisma.io/docs/concepts/components/prisma-schema
- Migrations: https://www.prisma.io/docs/concepts/components/prisma-migrate
- **Knex.js** - https://knexjs.org/
- Migrations: https://knexjs.org/guide/migrations.html
### Frontend
- **React** - https://react.dev/
- Hooks: https://react.dev/reference/react
- Context: https://react.dev/reference/react/useContext
- **Vite** - https://vitejs.dev/
- Config: https://vitejs.dev/config/
- Env variables: https://vitejs.dev/guide/env-and-mode.html
- **Tailwind CSS** - https://tailwindcss.com/docs
- Configuration: https://tailwindcss.com/docs/configuration
- Customization: https://tailwindcss.com/docs/theme
- **React Router** - https://reactrouter.com/en/main
- Protected routes: https://reactrouter.com/en/main/start/tutorial#adding-a-loader
### Docker
- **Docker Compose** - https://docs.docker.com/compose/
- Compose file reference: https://docs.docker.com/compose/compose-file/
- Networking: https://docs.docker.com/compose/networking/
- **nginx** - https://nginx.org/en/docs/
- Reverse proxy: https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
- WebSocket: https://nginx.org/en/docs/http/websocket.html
---
## 🎥 WebRTC Resources
### Getting Started
- **WebRTC.org** - https://webrtc.org/
- Getting started: https://webrtc.org/getting-started/overview
- Use cases: https://webrtc.org/getting-started/use-cases
- **MDN WebRTC API** - https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API
- RTCPeerConnection: https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection
- RTCDataChannel: https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel
- Simple peer-to-peer data: https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Simple_RTCDataChannel_sample
### Tutorials
- **WebRTC samples** - https://webrtc.github.io/samples/
- File transfer sample: https://webrtc.github.io/samples/src/content/datachannel/filetransfer/
- Basic RTCDataChannel: https://webrtc.github.io/samples/src/content/datachannel/basic/
- **HTML5 Rocks - WebRTC** - https://www.html5rocks.com/en/tutorials/webrtc/basics/
### Advanced Topics
- **STUN/TURN Servers**
- Understanding STUN/TURN: https://bloggeek.me/webrtcglossary/stun/
- Free STUN servers: https://gist.github.com/mondain/b0ec1cf5f60ae726202e
- Coturn (self-hosted TURN): https://github.com/coturn/coturn
- **NAT Traversal**
- ICE explained: https://bloggeek.me/webrtcglossary/ice/
- Trickle ICE: https://webrtc.org/getting-started/trickle-ice
- **WebRTC for the Curious** (free book) - https://webrtcforthecurious.com/
---
## 🔐 Security Resources
### Authentication
- **JWT** - https://jwt.io/
- Introduction: https://jwt.io/introduction
- Debugger: https://jwt.io/#debugger-io
- Best practices: https://curity.io/resources/learn/jwt-best-practices/
- **bcrypt** - https://github.com/kelektiv/node.bcrypt.js
- How bcrypt works: https://auth0.com/blog/hashing-in-action-understanding-bcrypt/
### General Security
- **OWASP Top 10** - https://owasp.org/www-project-top-ten/
- **Helmet.js** - https://helmetjs.github.io/
- **express-rate-limit** - https://github.com/express-rate-limit/express-rate-limit
- **express-validator** - https://express-validator.github.io/docs/
- **CORS** - https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
### WebRTC Security
- **WebRTC Security** - https://webrtc-security.github.io/
- **DTLS/SRTP** - https://webrtc.org/getting-started/security
---
## 🧪 Testing Resources
### Backend Testing
- **Jest** - https://jestjs.io/
- Getting started: https://jestjs.io/docs/getting-started
- API testing: https://jestjs.io/docs/testing-asynchronous-code
- **Supertest** - https://github.com/ladjs/supertest
- Express testing guide: https://github.com/ladjs/supertest#example
### Frontend Testing
- **Vitest** - https://vitest.dev/
- Getting started: https://vitest.dev/guide/
- **React Testing Library** - https://testing-library.com/react
- Cheatsheet: https://testing-library.com/docs/react-testing-library/cheatsheet/
- **Playwright** - https://playwright.dev/
- Getting started: https://playwright.dev/docs/intro
- **Cypress** - https://www.cypress.io/
- Getting started: https://docs.cypress.io/guides/getting-started/installing-cypress
---
## 📱 PWA Resources
### Service Workers
- **MDN Service Worker API** - https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API
- **Workbox** - https://developers.google.com/web/tools/workbox
- Getting started: https://developers.google.com/web/tools/workbox/guides/get-started
### PWA Features
- **Vite PWA Plugin** - https://vite-pwa-org.netlify.app/
- Guide: https://vite-pwa-org.netlify.app/guide/
- **Web App Manifest** - https://developer.mozilla.org/en-US/docs/Web/Manifest
- **Web Push Notifications** - https://developer.mozilla.org/en-US/docs/Web/API/Push_API
---
## 🚀 Deployment Resources
### Cloud Platforms
- **Vercel** - https://vercel.com/docs
- React deployment: https://vercel.com/docs/frameworks/vite
- **Netlify** - https://docs.netlify.com/
- **Render** - https://render.com/docs
- **DigitalOcean** - https://docs.digitalocean.com/
- App Platform: https://docs.digitalocean.com/products/app-platform/
- Droplets: https://docs.digitalocean.com/products/droplets/
- **AWS** - https://aws.amazon.com/getting-started/
- EC2: https://docs.aws.amazon.com/ec2/
- RDS: https://docs.aws.amazon.com/rds/
### SSL/TLS
- **Let's Encrypt** - https://letsencrypt.org/
- Certbot: https://certbot.eff.org/
- Documentation: https://letsencrypt.org/docs/
### Docker Production
- **Docker Production Best Practices** - https://docs.docker.com/develop/dev-best-practices/
- **Multi-stage builds** - https://docs.docker.com/build/building/multi-stage/
---
## 🎓 Video Tutorials
### WebRTC
- **WebRTC Crash Course** - https://www.youtube.com/watch?v=WmR9IMUD_CY (Traversy Media)
- **WebRTC File Transfer** - https://www.youtube.com/watch?v=WmR9IMUD_CY
- **Build a Video Chat App** - https://www.youtube.com/watch?v=DvlyzDZDEq4 (Fireship)
### MERN Stack (Similar to our stack)
- **MERN Stack Tutorial** - https://www.youtube.com/watch?v=7CqJlxBYj-M (freeCodeCamp)
- **Socket.IO Tutorial** - https://www.youtube.com/watch?v=ZKEqqIO7n-k (Web Dev Simplified)
### React
- **React Course for Beginners** - https://www.youtube.com/watch?v=bMknfKXIFA8 (freeCodeCamp)
- **React Hooks** - https://www.youtube.com/watch?v=O6P86uwfdR0 (Codevolution)
---
## 📦 Useful npm Packages
### Backend
- **express** - Web framework
- **socket.io** - WebSocket library
- **@prisma/client** / **knex** - Database ORM/query builder
- **bcryptjs** - Password hashing
- **jsonwebtoken** - JWT authentication
- **dotenv** - Environment variables
- **helmet** - Security headers
- **express-rate-limit** - Rate limiting
- **express-validator** - Input validation
- **cors** - CORS middleware
- **winston** / **pino** - Logging
- **nodemon** - Dev server auto-restart
### Frontend
- **react** - UI library
- **react-dom** - React DOM renderer
- **react-router-dom** - Routing
- **socket.io-client** - Socket.IO client
- **lucide-react** - Icons (already using)
- **react-hook-form** - Form handling
- **zod** - Schema validation
- **axios** - HTTP client
### Testing
- **jest** - Testing framework
- **supertest** - HTTP testing
- **vitest** - Vite-native testing
- **@testing-library/react** - React component testing
- **@testing-library/user-event** - User interaction simulation
- **playwright** / **cypress** - E2E testing
---
## 🛠️ Development Tools
### API Development
- **Postman** - https://www.postman.com/
- **Insomnia** - https://insomnia.rest/
- **Thunder Client** (VS Code extension) - https://www.thunderclient.com/
### Database Tools
- **pgAdmin** - https://www.pgadmin.org/
- **DBeaver** - https://dbeaver.io/
- **Prisma Studio** - Built-in with Prisma
### WebRTC Testing
- **Trickle ICE** - https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
- **WebRTC Troubleshooter** - https://test.webrtc.org/
### Performance
- **Lighthouse** - Chrome DevTools
- **WebPageTest** - https://www.webpagetest.org/
---
## 📖 Articles & Guides
### WebRTC
- **WebRTC File Transfer with Progress** - https://bloggeek.me/webrtc-file-transfer/
- **Understanding WebRTC Data Channels** - https://bloggeek.me/webrtc-data-channel/
- **WebRTC for Real-World Applications** - https://webrtchacks.com/
### Socket.IO
- **Socket.IO Best Practices** - https://socket.io/docs/v4/performance-tuning/
- **Scaling Socket.IO** - https://socket.io/docs/v4/using-multiple-nodes/
### Authentication
- **JWT Authentication Best Practices** - https://blog.logrocket.com/jwt-authentication-best-practices/
- **Session vs Token Authentication** - https://security.stackexchange.com/questions/81756/session-authentication-vs-token-authentication
### Docker
- **Docker for Node.js Developers** - https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
- **Docker Compose for Development** - https://docs.docker.com/compose/gettingstarted/
---
## 🌐 Community
### Forums
- **Stack Overflow** - https://stackoverflow.com/
- Tag: [webrtc] - https://stackoverflow.com/questions/tagged/webrtc
- Tag: [react] - https://stackoverflow.com/questions/tagged/react
- Tag: [node.js] - https://stackoverflow.com/questions/tagged/node.js
### Discord/Slack
- **Reactiflux** (React community) - https://www.reactiflux.com/
- **Node.js Discord** - https://discord.com/invite/nodejs
### Reddit
- **/r/webdev** - https://www.reddit.com/r/webdev/
- **/r/reactjs** - https://www.reddit.com/r/reactjs/
- **/r/node** - https://www.reddit.com/r/node/
---
## 📚 Recommended Reading
### Books
- **Node.js Design Patterns** - Mario Casciaro
- **Learning WebRTC** - Dan Ristic
- **React Up & Running** - Stoyan Stefanov
### Blogs
- **webrtcHacks** - https://webrtchacks.com/
- **BlogGeek.me** - https://bloggeek.me/ (WebRTC expert)
- **Kent C. Dodds** - https://kentcdodds.com/blog (React expert)
---
**Last Updated:** 2025-11-12
**Note:** Links verified as of last update. Some may change over time.