Summer SDE-Intern Hiring Challenge SummerGeeks - Innovaccer
A desktop app build on top of Electron - an open source framework which can be used for creating cross platform desktop native applications. This app handles entry management system for easy office Checkins and Checkouts. This project allows a host and a user to fill in their details and timestamp of their entry is generated automatically. ALso, Database handling for storing and fetching the data is done via Firebase real-time database system. For mailing and messaging system Nodemailer and Nexmo api respectively is been setup.
Just want to run the application, you can do is
- Clone the repository
$ git clone https://github.com/codekhal/greetify.git
- Install dependencies by using the following commands.
$ cd greetify
$ sudo npm install
Note: If you want to allow native Nodejs modules to work against the version of Nodejs your electron project is using then
$ npm install --save-dev electron-rebuild
$ $(npm bin)/electron-rebuild
Add both the above commands to allow electron to work in your Nodejs environment. One needs to do electron rebuild to allow grpc work for the electron app
-
Get your own API Key & API Secret from Nexmo API for messaging funtionality to work.
-
create a
.env
file in root directory and assign the following environment variables
$ cd greetify
$ touch .env
$ echo "EMAIL={your email id}" >> .env
$ echo "PASSWORD={your email password}" >> .env
$ echo "NEXMOAPIKEY={your nexmo api key for sms}" >> .env
$ echo "NEXMOAPISECRET={your nexmo api secret for sms}" >> .env
It considered a good practice to hid your credentials in .env file and then not pushing onto the version control, though this project had less scope for that.
- Finally run the application using
$ npm start
Note: Add electron . inside the start script to run.
- Finally if you are facing the error " Failed to load gRPC binary module because it was not installed for the current system ” related to grpc then here is an article for help. Firestore(Firebase) also uses gRPC so one needs to install this Devdependency in their package.json to resolve this error.
- File structure with the basic details about files and directories.
- __greetify__
- [LICENSE](greetify/LICENSE)
- [README.md](greetify/README.md)
- [index.html](greetify/index.html)
- [list2.md](greetify/list2.md)
- __logo__
- [Greetify.png](greetify/logo/Greetify.png)
- __favicon_io__
- [favicon16.png](greetify/logo/favicon_io/favicon16.png)
- [favicon.ico](greetify/logo/favicon_io/favicon.ico)
- [favicon32.png](greetify/logo/favicon_io/favicon32.png)
- [greetify.png](greetify/logo/greetify.png)
- [guest-1.png](greetify/logo/guest-1.png)
- [node_modules](greetify/node_modules)
- [package-lock.json](greetify/package-lock.json)
- [package.json](greetify/package.json)
- [addGuest.html](greetify/public/addGuest.html)
- [guestDetails.html](greetify/public/guestDetails.html)
- [loginHost.html](greetify/public/loginHost.html)
- __screenshots__
- [1.png](greetify/screenshots/1.png)
- [2.png](greetify/screenshots/2.png)
- [3.png](greetify/screenshots/3.png)
- [4.png](greetify/screenshots/4.png)
- [5.png](greetify/screenshots/5.png)
- [6.png](greetify/screenshots/6.png)
- [7.jpg](greetify/screenshots/7.jpg)
- [emailClient.js](greetify/scripts/emailClient.js)
- [firebase.js](greetify/scripts/firebase.js)
- [index.js](greetify/scripts/index.js)
- Contribution Guidelines
Kindly follow the Contributions Guildlines before you create any pull requests or issues. Though feel free to contribute in any form.
Open Source <3
Feel free to reach out to me