Omega: The spreadsheet Manager (Final)
Tags: dohackathon, react, node, mongodb
Published: 2021-01-08 16:45:18

# What I built

A spreadsheet manager app, which will help you to manage your spreadsheets from different Google Accounts in one place.

[//]: https://omega-server-ydvm2.ondigitalocean.app/

# Screenshots

* Login Page
![Login Page](https://dev-to-uploads.s3.amazonaws.com/i/19fgblzbtje81sfpc26w.png)

* Signup Page
![Signup Page](https://dev-to-uploads.s3.amazonaws.com/i/bfkoymctb6c945nvnnih.png)

* Dashboard Page (Without Data)
![Dashboard Page-Without Data](https://dev-to-uploads.s3.amazonaws.com/i/5uoi9rnbyrf1zl4fih86.png)

* Subscriptions Page (Without Data)
![Subscriptions Page-Without Data](https://dev-to-uploads.s3.amazonaws.com/i/0g2jnteijh9s7hu9b0lr.png)

* Subscriptions Page (With Subscription)
![Subscriptions Page-With Subscription](https://dev-to-uploads.s3.amazonaws.com/i/ey6hvspnphqkxvcmaf8p.png)

* Add Spreadsheet in Subscriptions Page
![Add Spreadsheet in Subscriptions Page](https://dev-to-uploads.s3.amazonaws.com/i/6vnrndgjf34mxxu7ugk5.png)

* Dashboard Page (With Data)
![Dashboard Page with Data](https://dev-to-uploads.s3.amazonaws.com/i/xdmz9sxdat6sz34d3q7u.png)


# Description

### Tech Stack
* Backend : Node JS & Express JS
* Frontend : React JS, Redux
* Database : Mongo DB

### Features
* Login with Username & Password
* Add Google Accounts as Subscriptions
* Add Spreadsheets from Subscribed Google Account
* Get all subscribed spreadsheet in the Dashboard

# Link to Source Code

* Omega Server: https://github.com/devsmranjan/omega-server
* Omega Client: https://github.com/devsmranjan/omega-client

# Permissive License

[MIT license](https://opensource.org/licenses/MIT)

# Background

I've different spreadsheets in different Google Accounts. But there is no way to manage these spreadsheets in one place from all the Accounts. This app will help you to manage your spreadsheets from different Google Account in one place.

# How I built it

Here, In this project, we will mainly use,

* **JWT** for Authentication with Username & Password
* **SendGrid** to send Email Verification, Password Verification URLs.
* **Google OAuth2** to add Google Accounts
* **Google Drive API** & **Google Spreadsheet API** to get all the spreadsheets.

# Additional Resources/Info
If you want to run this project,

#### Server
1. Clone Omega Server Repo from [here](https://github.com/devsmranjan/omega-server) 
2. Add `.env` file in the root directory
3. Inside `.env` add the following variables
```
* API_ENDPOINT=<API Endpoint ex: /api>
* SERVER_ROUTE=<Inital route of server after domain name. ex: /app>
* CLIENT_URL=<Client URL ex: http://localhost:3000>
* MONGO_URI=<MongoDB URI>
* JWT_SECRET=<Random String for JWT Secret>
* SENDGRID_API_KEY=<Sengrid API Key>
* SENDGRID_FROM_EMAIL=<Email of the sender>
* GOOGLE_CLIENT_ID=<Google Client ID>
* GOOGLE_CLIENT_SECRET=<Google Client Secret>
```
4. Run `npm install` to install all the dependencies.
5. Now run `npm run dev` to run the server on port `8000`

#### Client
1. Clone Omega Client Repo from [here](https://github.com/devsmranjan/omega-client) 
2. Add `.env` file in the root directory
3. Inside `.env` add the following variables
```
* REACT_APP_SERVER_ENDPOINT=<Server API Endpoint ex: /api>
* SERVER_URL=<Server URL ex: http://localhost:5000>
```
4. Run `npm install` to install all the dependencies.
5. Now run `npm start` to run the server on port `3000`