{"id":18907763,"url":"https://github.com/waldronmatt/bradshaw","last_synced_at":"2026-04-09T15:48:47.110Z","repository":{"id":104491829,"uuid":"320928868","full_name":"waldronmatt/bradshaw","owner":"waldronmatt","description":"A full stack TypeScript application using OOP and MVC patterns.","archived":false,"fork":false,"pushed_at":"2020-12-14T21:52:19.000Z","size":813,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-31T11:57:27.365Z","etag":null,"topics":["express","expressjs","javascript","jest","mvc","mvc-architecture","nodejs","oop","oop-principles","postgresql","sass","typescript","webpack"],"latest_commit_sha":null,"homepage":"https://bradshaw.netlify.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waldronmatt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"waldronmatt"}},"created_at":"2020-12-12T21:35:57.000Z","updated_at":"2020-12-14T21:52:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"2781f6d7-d20f-495e-a783-ed3705a332fa","html_url":"https://github.com/waldronmatt/bradshaw","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldronmatt%2Fbradshaw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldronmatt%2Fbradshaw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldronmatt%2Fbradshaw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldronmatt%2Fbradshaw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waldronmatt","download_url":"https://codeload.github.com/waldronmatt/bradshaw/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239891376,"owners_count":19714131,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["express","expressjs","javascript","jest","mvc","mvc-architecture","nodejs","oop","oop-principles","postgresql","sass","typescript","webpack"],"created_at":"2024-11-08T09:23:09.237Z","updated_at":"2025-12-30T19:18:41.511Z","avatar_url":"https://github.com/waldronmatt.png","language":"JavaScript","funding_links":["https://ko-fi.com/waldronmatt"],"categories":[],"sub_categories":[],"readme":"# bradshaw (work-in-progress)\n\n[![Netlify Status](https://api.netlify.com/api/v1/badges/196c079f-cddd-4a20-8c56-7853e9d01e71/deploy-status)](https://app.netlify.com/sites/bradshaw/deploys)\n\nA full stack TypeScript application using OOP and MVC patterns. [Click here to see it live on Netlify](https://bradshaw.netlify.app).\n\n## Purpose\n\nLearn about common architecture patterns and apply them by developing a real-world application.\n\n## Fork and Launch\n\n[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/waldronmatt/bradshaw)\n\n## Installation\n        \nInstall dependencies:\n\n        npm install\n\n## Usage\n\n### Development server\n\nRun dev environment:\n\n        npm run dev\n\n### Production build\n\nBuild and serve for production:\n\n        npm run build\n\n### Other commands\n\nRun the server\n\n        npm run serve\n\nCreate webp images:\n\n        npm run optimize\n\nRun all tests:\n\n        npm run test\n\nVisualize Webpack output\n\n        npm run analyze\n\n## Objectives\n\n- Utilize a 3-tier/MVC combination to promote separation of concerns and loose decoupling\n- Implement architecture patterns using vanilla TypeScript\n- Have at least 50% code coverage\n- Implement user authentication\n- Store and retrieve data using SQL\n- Automate the bundling process and app deployment using Webpack and Netlify\n\n## Stack\n\n- PETN stack (PostgreSQL, Express, TypeScript, Node.js)\n\n## Technologies\n\n- EJS/HTML for markup templates and metadata injection\n- Sass for scalable styling\n- TypeScript for user interface, business, and controller logic\n- Express for server configuration and routing\n- Node.js for authentication and data access logic\n- PostgreSQL for data storage, modification, and retrieval.\n- Webpack and associated technologies for bundling and serving\n\n## Contributing\n\nThis is a work-in-progress project. Pull requests are welcome when more development is complete.\n\n## License\n\nMIT\n\n## Credits\n\n- Code refactored from Java to TypeScript/Node.js using Object-Oriented Application Development Using Java Source Code (ISBN-13: 978-0619035655).\n- [Student Source Code available here](https://github.com/waldronmatt/object-oriented-application-development-using-java-student-source-code).\n- Webpack boilerplate cloned from [Mixpack](https://github.com/waldronmatt/mixpack)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaldronmatt%2Fbradshaw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaldronmatt%2Fbradshaw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaldronmatt%2Fbradshaw/lists"}