https://github.com/waldronmatt/bradshaw
A full stack TypeScript application using OOP and MVC patterns.
https://github.com/waldronmatt/bradshaw
express expressjs javascript jest mvc mvc-architecture nodejs oop oop-principles postgresql sass typescript webpack
Last synced: 14 days ago
JSON representation
A full stack TypeScript application using OOP and MVC patterns.
- Host: GitHub
- URL: https://github.com/waldronmatt/bradshaw
- Owner: waldronmatt
- License: mit
- Created: 2020-12-12T21:35:57.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2020-12-14T21:52:19.000Z (about 5 years ago)
- Last Synced: 2024-12-31T11:57:27.365Z (about 1 year ago)
- Topics: express, expressjs, javascript, jest, mvc, mvc-architecture, nodejs, oop, oop-principles, postgresql, sass, typescript, webpack
- Language: JavaScript
- Homepage: https://bradshaw.netlify.app/
- Size: 794 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bradshaw (work-in-progress)
[](https://app.netlify.com/sites/bradshaw/deploys)
A full stack TypeScript application using OOP and MVC patterns. [Click here to see it live on Netlify](https://bradshaw.netlify.app).
## Purpose
Learn about common architecture patterns and apply them by developing a real-world application.
## Fork and Launch
[](https://app.netlify.com/start/deploy?repository=https://github.com/waldronmatt/bradshaw)
## Installation
Install dependencies:
npm install
## Usage
### Development server
Run dev environment:
npm run dev
### Production build
Build and serve for production:
npm run build
### Other commands
Run the server
npm run serve
Create webp images:
npm run optimize
Run all tests:
npm run test
Visualize Webpack output
npm run analyze
## Objectives
- Utilize a 3-tier/MVC combination to promote separation of concerns and loose decoupling
- Implement architecture patterns using vanilla TypeScript
- Have at least 50% code coverage
- Implement user authentication
- Store and retrieve data using SQL
- Automate the bundling process and app deployment using Webpack and Netlify
## Stack
- PETN stack (PostgreSQL, Express, TypeScript, Node.js)
## Technologies
- EJS/HTML for markup templates and metadata injection
- Sass for scalable styling
- TypeScript for user interface, business, and controller logic
- Express for server configuration and routing
- Node.js for authentication and data access logic
- PostgreSQL for data storage, modification, and retrieval.
- Webpack and associated technologies for bundling and serving
## Contributing
This is a work-in-progress project. Pull requests are welcome when more development is complete.
## License
MIT
## Credits
- Code refactored from Java to TypeScript/Node.js using Object-Oriented Application Development Using Java Source Code (ISBN-13: 978-0619035655).
- [Student Source Code available here](https://github.com/waldronmatt/object-oriented-application-development-using-java-student-source-code).
- Webpack boilerplate cloned from [Mixpack](https://github.com/waldronmatt/mixpack)