Instructor Notes
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.
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 planning and relationship modeling
- Database schema design and implementation
- SQL file creation with DDL statements
- Synthetic data generation and loading
- 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
- Vanilla JavaScript client development
- React application creation
- User interface design for master-detail data management
- Dynamic data visualization and interaction
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.
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
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
Upon completion, students will be able to:
- Model complex data relationships and translate them into working database schemas
- Build production-ready REST APIs that follow industry best practices
- Create full-stack applications with proper separation of concerns
- Implement comprehensive CRUD operations across multiple application layers
- Design user interfaces that effectively present hierarchical data
- Integrate multiple technologies into cohesive application solutions
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.