Skip to content

Training

Jordan Lees edited this page May 15, 2024 · 5 revisions

If you want to learn how to build an app like Scoutradioz from the ground up - and get familiar with the key technologies along the way - this is the right place!

Background

Scoutradioz started with a couple of Team 102 students and mentors following a minimal tutorial for setting up a web app leveraging Node (Javascript runtime), Express (a web application framework), and Mongo (a NoSQL database).

The application has grown in breadth and complexity and has done a lot of maturing since then. Lots of lessons were learned along the way! And a great way to learn those lessons now is to follow in those footsteps and build your own application.

This tutorial is a work in progress. As we add to it and fill it out, you'll walk through putting together an application leveraging the same technologies and design patterns, from an initial "read-Hello-World-from-a-database-and-show-on-a-webpage" demo app, to being able to upload photos from a phone or computer, to using CSS, setting up authentication, and more!

Syllabus

  1. "Hello World" tutorial
  2. Source control
    • TODO (.gitignore, node_modules, etc.)
  3. Designing an application
    • Architecture
    • Feature layout
    • "Imageboard"
  4. Coding best practices
    • Good coding practice
    • Logging
    • Eslint
  5. User accounts
    • Authentication
    • Administration and user preferences
    • Security / roles
  6. CSS and custom stylesheets
    • Responsive design
    • Static files
    • Web UI menus
  7. View best practices
    • Layout
    • Mixin functions
    • Clean code
  8. Route best practices
    • Multiple routes
    • Async/await
    • Middleware functions
  9. Image uploading
    • File storage
    • AvatarStorage
  10. Databases and data structures
    • Mongo queries
    • Scoutradioz-Utilities
    • DB update scripts
  11. Database maintenance
    • TODO (cloning, backups, restores, etc.)
  12. Error handling and info messages
    • Alerts
    • Notification cards
  13. Making REST calls
    • TBA (The Blue Alliance) APIs
  14. AWS (Amazon Web Services)
    • Lambda
    • API Gateway
    • S3
    • Configuration management and YAML
    • MongoDB Atlas
    • CloudWatch
  15. Legal aspects of OSS (open source software)
    • Licensing (AGPLv3, etc.)
    • Trademarks
    • Patents