Unit 3: Full-Stack Website Development¶
This unit prepares you for AS91903 – Website Project with API Backend, a 10-week internal assessment focused on building end-to-end web applications with frontend, backend, and database components.
Unit Overview¶
You will learn to: - design multi-tier web application architecture - build responsive frontends using HTML, CSS, and JavaScript - implement RESTful APIs and backend logic - design and query relational or NoSQL databases - test frontend/backend integration and debug cross-layer issues - manage a complex project with continuous evidence of progress
By the end of this unit, you will have built a functional web application with clear frontend/backend separation, comprehensive testing, and evidence of iterative development.
Topics in This Unit¶
- 1. Web Application Architecture – Understanding frontend/backend separation
- 2. Frontend Fundamentals – HTML, CSS, responsive design, DOM manipulation
- 3. Backend Development – Server logic, APIs, request handling
- 4. RESTful API Design – Designing clean, predictable APIs
- 5. Database Design – Relational schemas, queries, optimization
- 6. Frontend/Backend Integration – Connecting frontend to APIs, handling errors
- 7. Testing & Deployment – Testing full-stack, deploying applications
How This Unit Relates to Assessment¶
AS91903 – Website Project with API Backend requires you to submit:
- Project specification and architecture diagram (system design, data model, API endpoints, user flows)
- Frontend code (HTML, CSS, JavaScript) with clear structure and comments
- Backend/API code with documented endpoints and error handling
- Database schema with design rationale
- Deployment/setup instructions so the app can run independently
- Testing evidence (frontend tests, API tests, integration tests)
- Development journals tracking progress through planning, UX, frontend, backend, and integration phases
- Code walkthrough demonstrating understanding of how components integrate
- Reflection on full-stack development challenges and lessons
This unit's topics directly support these requirements.
Key Concepts to Master¶
- Separation of concerns: Frontend and backend have distinct responsibilities
- API contracts: Clear agreement between frontend and backend (request format, response format, error codes)
- Database normalization: Efficient schema design to avoid redundancy
- Responsive design: Applications work across desktop, tablet, and mobile
- Error handling: Graceful failures on both frontend and backend
- Integration testing: Verifying that frontend/backend communicate correctly
- State management: Tracking data flow through the application
- Deployment: Making the application accessible on a server
Important Assessment Reminders¶
Fortnightly Micro-Deliverables¶
Progress checkpoints every two weeks: - Weeks 1–2: Specification, architecture diagram, data model, API design document - Weeks 3–4: Frontend prototype; API endpoint implementation (subset) - Weeks 5–6: Frontend feature implementation; API implementation progress - Weeks 7–8: Integration testing; debugging of cross-component issues - Weeks 9–10: Final polish, user testing (if applicable), documentation
Live Integration Demonstration¶
You will demonstrate: - Frontend successfully calling API endpoints - Data flowing correctly from frontend → API → database → frontend - Error scenarios handled gracefully (invalid input, server down, etc.) - Performance is acceptable (pages load quickly, no unnecessary API calls)
Full-Stack Understanding Required¶
Your teacher will ask: - "Walk me through how data flows from the frontend input to the database and back" - "What happens if this API endpoint fails? How does the frontend respond?" - "Why did you structure your database schema this way?" - "How would you add a new feature to this endpoint?"
If you don't understand how all layers work together, the evidence is not valid.
AI Use Restrictions (AS91903-Specific)¶
- ✗ AI-generated API designs or database schemas without understanding
- ✗ Submitting integration code you can't explain or modify
- ✓ AI tools may help understand architectural concepts
- ✓ AI tools may suggest database optimizations (which you verify)
- ✓ AI tools may help debug specific errors if you understand the fix
Technology Stack Options¶
Frontend¶
- HTML5 (required)
- CSS3 (required; can use Bootstrap, Tailwind, or plain CSS)
- JavaScript (required; can use React, Vue, Svelte, or vanilla JS)
Backend¶
- Node.js + Express (JavaScript-based; easy path from frontend)
- Python + Flask or Django (clean syntax; great libraries)
- Other frameworks permitted with approval (Rails, .NET, Go, etc.)
Database¶
- PostgreSQL or MySQL (relational; recommended for structured data)
- MongoDB (document-based; good for flexible schemas)
Common Pitfalls to Avoid¶
- Tight coupling: Frontend and backend too interconnected; hard to test separately
- No API documentation: Endpoints undocumented; hard to verify contract
- Inadequate error handling: Frontend doesn't handle API failures gracefully
- No database design phase: Schema designed on the fly; inefficient and buggy
- Skipping integration testing: Components work separately but fail when integrated
- Monolithic frontend: All code in one giant JavaScript file; unmaintainable
- No version control: Missing git history raises questions about AI use
- Poor documentation: Deployment instructions missing; app can't run on fresh machine
External Resources¶
Full-Stack Architecture¶
- How the Web Works (MDN) – Client/server model
- REST API Best Practices – API design principles
Frontend¶
- MDN Web Docs – HTML, CSS, JavaScript reference
- Responsive Design Basics – Mobile-first design
Backend & APIs¶
- Express.js Tutorial – Node.js server framework
- Flask Tutorial – Python server framework
Databases¶
- PostgreSQL Documentation – SQL database guide
- MongoDB Guide – Document database guide
Integration & Deployment¶
- Testing Full-Stack Applications – Strategies for end-to-end testing
- Heroku Deployment Guide – Deploy Node.js or Python apps
Key Vocabulary¶
- API (Application Programming Interface): Set of rules for how software communicates
- Backend: Server-side code and database; handles business logic
- Client-server model: Frontend (client) requests; backend (server) responds
- Database: Organized storage of data
- Endpoint: URL on the backend that the frontend can request
- Frontend: Client-side code (HTML, CSS, JavaScript) users interact with
- HTTP methods: GET (retrieve), POST (create), PUT (update), DELETE (remove)
- Integration: Connecting frontend, backend, and database so they work together
- Middleware: Software sitting between frontend and backend (e.g., authentication)
- Normalization: Database design principle to avoid redundancy
- Request/Response: Frontend sends request to API; API sends response with data
- RESTful: API design following REST principles (resource-oriented, stateless)
- Schema: Structure defining how data is organized in a database
Navigating Unit 3¶
Start with 01_web-app-architecture.md and work through each topic in order.
End of Unit 3 Overview