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