Easy Park was created during YHack 2018 as a solution to parking penalties and restrictions. Have you ever left your car in a street cleaning lane, snow plow lane, 2 hour parking, or at a bar? If your car has 3G/4G/LTE capabilities and is made by one of the 13 major brands supported by the Smartcar API, EasyPark can find a trust-worthy individual to move your car for you. Using Smartcar's API, a driver can unlock your car doors, use a key inside (keyless remote start will be supported in the future), move your car, and lock the car when they are done. It's that simple!
Please note that this is an unfinished product created during a 32 hour Hackathon. It is not optimized and may break traditional design standards in favor of completing a minimum viable product before the end of the event. A working implementation of the unlock feature and a basic design goal has been provided. Future iterations of this project should correct design inconsistancies and security vulnerabilities in addition to adding features depicted in the design wireframe.
MongoDB stores persistant server-side data necessary for the application to perform in a multi-user environment. Interactions with the database are managed by the Node Server. Cloud services such as MLab, Google Cloud Platform, or Amazon Web Services may be used to host the database, however, for demonstration purposes, install MongoDB locally.
Note, by default, Easy Park will attempt to connect to an MLab development database. To test against a local database, update the URL in app.js.
MongoDB on MacOS Using Homebrew
- Install MongoDB for Homebrew
brew install mongodb
- Run MongDB Locally
brew services start mongodb
- Stop MongoDB
brew services stop mongodb
The NodeJS server handles all interactions with SmartCar and the Mongo Database. This server could be deployed, but is currently configured for local hosting.
In the Server Directory run:
npm install
to install dependenciesnodemon
to start the server.
The Angular Client is a basic proof of concept of the features available in the app. To access the client, build a production copy, or run the Angular Development Server.
The following commands should be run from the Client Directory:
- Installation (Both)
npm install -g @angular/cli
to install the Angular Commandline Interfacenpm install
to install dependencies
- Build Production Copy
ng build --base-href ./ --prod
This will build to the dist directory. Access the index.html file to run the build
- Launch Angular Development Server
ng serve
This will launch a live updating development server. It is significantly slower than the build, but will update and refresh all isntances any time the source code is changed. While running, the client can be accessed from localhost:4200.
A secure connection between the NodeJS server and the client is not configured currently. Modern browsers will block communication between the two services. To disable this feature in Chrome, install and enabled the Allow-Control-Allow-Origin: * Plugin.