Simple prototype of taxi dashboard built on top of Nuxt.js and Express.js
Beep beep. Meet Velocity – app for taxi company. It's not totally complete because doing this project alone is very difficult. The main goal for me was to learn how to use Vue with TypeScript in anticipation of the third version. Also, I never wrote the server side for applications. First tried Node.js, Mongo, Mongoose in action.
All components are ready on the client side, it remains only to write the logic. The server uses stubs to respond to pages. Only the logic for working with the user is ready: registration, authorization, password recovery, changing information about yourself, loading the avatar on S3.
For unit tests I used Jest. Tests cover only client components, approximately 80% of the entire code. Also, the application was not tested in most browsers, since I did not have a goal to make applications for production, I wanted to learn more about new things.
As a result, I realized that Vue in conjunction with TypeScript is still not reaching React. Poor IDE support, not working templates with prop types highlighting. It forced me to switch from templates to JSX, where I met new problems. Small community, poor documentation, etc.
If app is taking a long time to load – please wait. Heroku will spin down app to save resources, if it's not accessed for a certain amount of time. Thus the slowness is caused by having to start up the entire app again.
Application unavailable for now due to AWS free tier expiring. You can run it locally after filling the
.env file with all keys.
|Login||This is a page where the user can log in, register, receive a password reset email|
|Reset password||This is a page where the user enters a new password. A token is required that comes to the mail|
|Analytics||This is a page with various graphs and statistics on the project|
|Vehicles||This is a page with a table of all the vehicles that can be filtered|
|Reminders||This is a To Do List Page|
|Map||This is a page with current trips|
|Chat||This is a page where you can communicate with customers|
|Settings||This is a page where the user can change information about himself, choose a theme for the site|
|Not found||Not found page for 404 error|
||Install dependencies from package-lock.json|
||Run dev server with HMR|
||Build app for production|
||Serve production build locally|
||Analyze webpack bundle|
||Run unit tests|
||Lint and fix all files|
Tech stack ⚙️
|TypeScript||TypeScript is getting more and more popular in the Front-end environment. Myself, I have loved it since I used it for the first time. And I will continue using this in all my next projects for sure.|
|Vuex||A main state management library for Vue.js. This app is fine without Vuex, but
|Vue Router||I don't like built in Nuxt.js `pages` folder so I use my own router config.|
|Nuxt.js||It simplifies the development of universal or single page Vue apps.|
|Nuxt property decorator||Handy ES / TypeScript decorators for class-style Vue components in Nuxt.|
|JSX||Vue.js doesn't have good TypeScript support using a
|MJML||The only framework that makes responsive email easy|
|Chart.js||Chart.js is an easy way to include animated, interactive graphs on website|
|Jest||Framework for unit testing|
|Storybook||Storybook is an open source tool for developing UI components in isolation for React, Vue, and Angular. It makes building stunning UIs organized and efficient.|
|Express.js||The fast, unopinionated, minimalist web framework for node|
|MongoDB||The most popular database for modern apps|
|Mongoose||Mongoose provides a straight-forward, schema-based solution to model my application data.|
|Yup||Dead simple Object schema validation|
|AWS S3||Object storage for users static files|