A full-stack web application built for the System Development Assignment at Bournemouth University. The project covers end-to-end design and development of a website with a custom REST API and Google OAuth integration.
This project fulfils the following assignment requirements:
- Full website designed and developed from scratch
- Custom REST API built with Flask
- At least one Google Services API integrated (Google OAuth)
- Two distinct database types used (SQL and NoSQL)
- Public release of the final project
| Technology | Purpose |
|---|---|
| Astro + React | Static-first framework with interactive islands |
| TypeScript | Strongly typed development |
| Cloudflare Pages | Free frontend hosting |
| Technology | Purpose |
|---|---|
| Flask | REST API server |
| MSSQL | User details and general project data |
| MongoDB | Customisable and dynamic website content |
| Render | Free backend hosting |
| NGrok | Port-forwarding for local database access |
| Integration | Purpose |
|---|---|
| Google OAuth 2.0 | Sign in / sign up with Google account |
- Frontend: Cloudflare Pages (free static hosting)
- Backend: Render (free tier)
- Databases: Run locally and exposed via NGrok. This was chosen to avoid the cost of managed MSSQL hosting.
Login / CORS bug
After a successful Google OAuth login, the page resets immediately and logs the user out. The issue is a conflict between the OAuth redirect flow and the CORS configuration. A fix was not implemented within the project timeline.
This project was submitted as part of the System Development module at Bournemouth University. Public release was an optional assignment requirement, fulfilled by deploying the frontend and backend to free hosting platforms.



