PAYME Invoice, Vue.js MVC App
Invoice/payment system, with Firestore/Firebase integration
PAYME Invoice, Vue.js MVC App
Invoice/payment system, with Firestore/Firebase integration
![[1] PAYME Invoice, Vue.js MVC App, Invoice/payment system, with Firestore/Firebase integration](/projects/payme/payme-featured.jpg)
![[1] PAYME Invoice, Vue.js MVC App, Invoice/payment system, with Firestore/Firebase integration](/projects/payme/payme-1.png)
![[2] PAYME Invoice, Vue.js MVC App, Invoice/payment system, with Firestore/Firebase integration](/projects/payme/payme-2.png)
![[2] PAYME Invoice, Vue.js MVC App, Invoice/payment system, with Firestore/Firebase integration](/projects/payme/payme-3.png)
Overview
PAYME is a Vue.js MVC invoicing application enabling users to create, view, and delete invoices. The application includes four main routes: /home, /list, /item/{id}, and /create, and provides a fully documented codebase for easy maintenance.
Features
- Vue.js v2 application with Vuex state management.
- Firebase/Firestore backend integration for live data storage.
- Mock backend for testing and development.
- Fully responsive UI using Vue-materials and Bootstrap 4.
- Structured MVC architecture with modular components and services.
Tech Summary
- Frontend: Vue.js v2, Vuex, Vue-materials, ES6, Bootstrap 4
- Backend: Node.js, Express.js, Firestore/Firebase
- Tools: Webpack, NPM, Sass, Lodash
- Hosted: GitHub Pages, Google Cloud
Outcome
- Functional invoicing application with real-time database interaction.
- Tested on Chrome and Firefox, fully documented for developers.
- Seamless local and live API switching for development and production environments.
Technologies:
Es6
ES6 (ECMAScript 2015) is the sixth edition of the ECMAScript standard, introducing new features like classes, modules, and arrow functions to JavaScript. Why use it? ES6 makes JavaScript code cleaner, more modular, and easier to manage. Best practices include using let/const over var and taking advantage of modern JavaScript features. ES6 was finalized in 2015.
Mvc
MVC (Model-View-Controller) is an architectural pattern for designing web applications. Why use it? MVC separates data, user interface, and user input, making applications easier to manage and scale. Best practices include separating concerns, using routers for navigation, and leveraging templates for views. MVC has been in use since the 1970s.
Spa
SPA (Single-Page Application) is a web app that interacts with the user by dynamically rewriting the current page. Why use it? SPAs provide a smoother, more seamless user experience with fast page loads and minimal server interactions. Best practices include using client-side routing and lazy loading. SPAs became popular in the late 2000s.
Vue.js
Vue.js is a progressive JavaScript framework used to build user interfaces. Why use it? Vue.js is lightweight, flexible, and provides reactive data binding, making it ideal for building dynamic and interactive web applications. Best practices include using Vue CLI for setup, components for modularity, and Vuex for state management. Vue.js was first released in 2014.
Vuex
Vuex is a state management library for Vue.js applications. Why use it? Vuex allows you to manage the state of your application in a centralized way, making it easier to maintain and debug. Best practices include using modules for large-scale applications and following the Flux architecture. Vuex was first released in 2015.
Vue-materials
Vue Material is a UI component library for Vue.js, following Google’s Material Design principles. Why use it? Vue Material offers pre-made components that fit with Material Design, helping you build sleek and user-friendly interfaces. Best practices include using Vue Material components for consistent design and accessibility. Vue Material was first released in 2016.
Lodash
Lodash is a JavaScript utility library that provides modular, performance-optimized functions for common programming tasks. Why use it? Lodash simplifies complex operations like deep cloning, data manipulation, and iteration, improving code readability and maintainability. Best practices include using the appropriate Lodash methods to reduce boilerplate code. Lodash was first released in 2012.
Webpack
Webpack is a powerful module bundler used for JavaScript applications. It helps optimize the delivery of code by bundling modules, assets, and resources. Why use it? Webpack provides code-splitting, asset optimization, and powerful plugins to improve the development workflow. Best practices include setting up proper configurations for loaders and plugins. Webpack was first developed in 2012.
Bootstrap
Bootstrap is a popular open-source front-end framework for building responsive websites and applications. Why use it? Bootstrap includes pre-designed UI components, grid systems, and CSS styles, making it easier to build consistent, mobile-first websites. Best practices include customizing the framework to fit your design needs and using the grid system effectively. Bootstrap was first released in 2011.
Mock-backend
A mock backend is a simulated server used for testing front-end applications before integrating with a real backend. Why use it? Mock backends allow developers to test features and functionality in isolation, speeding up development. Best practices include creating realistic data structures and simulating server responses. Mock backends have been used in development since the early 2010s.
Firestore/firebase
Firestore is a NoSQL cloud database from Firebase used to store and sync data in real-time. Why use it? Firestore provides scalability and real-time synchronization across devices, making it ideal for mobile and web apps. Best practices include structuring data for efficient querying and minimizing read/write operations. Firestore was launched in 2017.
Google cloud
Google Cloud offers a suite of cloud computing services that allow businesses to build and host applications and websites. Why use it? Google Cloud provides scalable, reliable, and secure infrastructure for businesses of all sizes. Best practices include leveraging Google’s managed services for compute, storage, and databases. Google Cloud was launched in 2008.
Heroku
Heroku is a cloud platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud. Why use it? Heroku simplifies deployment and management of apps, with support for multiple programming languages and easy integrations. Best practices include using Heroku’s built-in monitoring tools for performance insights. Heroku was founded in 2007.
Responsive
Responsive web design ensures that web pages look good on all device sizes. Why use it? It improves user experience across desktop, tablet, and mobile devices. Best practices include using flexible grid layouts, responsive images, and media queries. Responsive design became a standard practice in 2010.
Npm
npm (Node Package Manager) is a package manager for JavaScript, used to install and manage dependencies in Node.js projects. Why use it? npm simplifies package management and ensures dependencies are up to date. Best practices include using versioning for packages and auditing for vulnerabilities. npm was first released in 2010.
Node.js
Node.js is a JavaScript runtime built on Chrome's V8 engine for building server-side applications. Why use it? Node.js offers fast performance and scalability, making it ideal for real-time applications and APIs. Best practices include using async/await, modularizing code, and using event-driven programming. Node.js was first released in 2009.
Express.js
Express.js is a fast and minimalist web application framework for Node.js. Why use it? Express simplifies routing, middleware, and server setup, making it ideal for building APIs and web applications. Best practices include using middleware for handling errors and request validation. Express.js was first released in 2010.
Sass
Sass (Syntactically Awesome Stylesheets) is a preprocessor scripting language that is compiled into CSS. Why use it? Sass offers features like variables, nested rules, and mixins to make writing CSS more powerful and maintainable. Best practices include organizing styles into partials and using Sass maps for theme management. Sass was first released in 2006.
Ux/ui
UX/UI design focuses on the user experience and interface design for digital products. Why use it? UX/UI design ensures that products are user-friendly, accessible, and visually appealing. Best practices include user testing, maintaining design consistency, and focusing on responsive design. UX/UI design has been a key focus of web development since the early 2000s.
Rest/api
REST (Representational State Transfer) is an architectural style for designing networked applications. REST APIs allow communication between clients and servers over HTTP. Why use it? REST APIs are scalable, stateless, and easy to integrate into web services. Best practices include using proper HTTP methods (GET, POST, PUT, DELETE) and stateless communication. REST APIs became popular in the 2000s.
Production
Production in web development refers to the live environment where the final version of a product is deployed. Why use it? The production environment is optimized for stability, performance, and scalability. Best practices include version control, continuous deployment, and monitoring production health. Production environments have been the standard for software release since the 1950s.