Skip to content

Latest commit

 

History

History
125 lines (95 loc) · 5.53 KB

File metadata and controls

125 lines (95 loc) · 5.53 KB

Instructor Notes

OnesToManys Project - Week-Long Learning Overview

Project Introduction

Welcome to the OnesToManys project - a comprehensive week-long journey that will take your students from database design fundamentals to full-stack web development. This project is designed to give students hands-on experience building a complete 3-tier web application while mastering the critical concept of master-detail (one-to-many) relationships in data modeling.

What Students Will Learn

Core Learning Objectives

By the end of this week, students will have gained practical experience in:

Database Design & Management

  • Understanding and implementing master-detail relationships in relational databases
  • Creating database schemas using SQL DDL statements
  • Generating synthetic test data for development and testing
  • Working with foreign keys and referential integrity constraints
  • Understanding cascade operations and data consistency

Backend Development

  • Building RESTful APIs using either Java (Spring Framework) or Python (Flask/FastAPI)
  • Implementing full CRUD operations (Create, Read, Update, Delete)
  • Designing API endpoints that properly represent hierarchical data relationships
  • Managing database connections and transactions
  • Understanding 3-tier architecture principles (Presentation, Business Logic, Data layers)

API Design & Testing

  • Creating intuitive REST endpoint structures for master-detail relationships
  • Using command-line tools (curl) for basic API testing
  • Working with GUI-based API testing tools (Postman, Insomnia, or Everest)
  • Understanding HTTP methods and status codes
  • Implementing data serialization and deserialization

Frontend Development

  • Building user interfaces with Vanilla JavaScript
  • Creating dynamic React applications
  • Connecting frontend applications to backend APIs
  • Designing user-friendly interfaces for hierarchical data navigation
  • Implementing client-side CRUD operations

Data Management

  • Importing and exporting data in multiple formats (SQL, JSON)
  • Understanding data persistence strategies
  • Working with database dumps and data migration

Project Structure & Timeline

Phase 1: Foundation (Days 1-2)

  • Project planning and relationship modeling
  • Database schema design and implementation
  • SQL file creation with DDL statements
  • Synthetic data generation and loading

Phase 2: Backend Development (Days 3-4)

  • REST API server creation
  • CRUD endpoint implementation for both master and detail entities
  • One-to-many relationship API endpoints
  • Comprehensive API testing using multiple tools

Phase 3: Frontend Integration (Days 5-7)

  • Vanilla JavaScript client development
  • React application creation
  • User interface design for master-detail data management
  • Dynamic data visualization and interaction

Real-World Application

Students will choose from practical business scenarios such as:

  • Customer-Orders management systems
  • Course-Students enrollment tracking
  • Blog-Comments content management
  • Playlist-Songs media organization
  • Project-Tasks workflow management

These scenarios mirror real-world development challenges and provide context for understanding why master-detail relationships are fundamental to modern application development.

Technical Skills Development

For Java Track Students:

  • Spring Boot framework proficiency
  • JPA/Hibernate ORM concepts
  • Spring Data REST implementation
  • Maven project management

For Python Track Students:

  • Flask or FastAPI framework usage
  • SQLAlchemy ORM concepts
  • Python web development patterns
  • Package management with pip

Universal Skills:

  • Git version control workflow
  • Database design principles
  • REST API design patterns
  • Frontend-backend integration
  • Testing methodologies

Assessment Opportunities

This project provides multiple assessment touchpoints:

  • Database Design Review: Schema correctness and relationship implementation
  • API Functionality: Endpoint completeness and proper HTTP conventions
  • Code Quality: Clean, maintainable, and well-documented code
  • User Interface: Intuitive and functional frontend implementation
  • Integration Testing: Seamless interaction between all application tiers

Learning Outcomes

Upon completion, students will be able to:

  1. Model complex data relationships and translate them into working database schemas
  2. Build production-ready REST APIs that follow industry best practices
  3. Create full-stack applications with proper separation of concerns
  4. Implement comprehensive CRUD operations across multiple application layers
  5. Design user interfaces that effectively present hierarchical data
  6. Integrate multiple technologies into cohesive application solutions

Instructor Notes

This project bridges the gap between theoretical knowledge and practical application development. Students will encounter real-world challenges including data validation, error handling, and user experience design. The modular structure allows for differentiated instruction - advanced students can explore additional features while others focus on core requirements.

The project's flexibility in domain selection (Customer-Orders, Course-Students, etc.) allows students to work with data models that interest them personally, increasing engagement and ownership of their learning.

Recommended Support Strategy: Daily check-ins during each phase to ensure students stay on track, with particular attention to the database design phase as it forms the foundation for all subsequent work.