Blueprint is a centralized dashboard which introduces cross-features between our favorite Google products: Gmail, Tasks, and Calendar. These features are designed to enhance power users’ ability to plan and work effectively.
Blueprint synthesizes information from Gmail, Tasks, and Calendar to present useful/actionable highlights and encourage actions between them, such as automatically creating tasks or calendar events out of emails, automatically scheduling calendar events from tasks and finding the most efficient order of travel between different tasks. These features, ultimately, will empower the user to easily plan how they will take action.
We are NOT aiming to simply embed multiple Google products onto a single page. Rather, we are aiming to present summary information from each service (i.e. You have 35 unread emails in the last 7 days vs. presenting a list of all unread emails [which would be redundant])
We are NOT aiming to teach users who do not already use these features on a regular basis since this is targeted towards power users.
We are NOT aiming to rewrite any existing functionality such as writing our own function to send an email, creating our own Google Tasks, or making our own calendar.
We are NOT aiming to store any user information that might be displayed on our dashboard - we are simply extracting useful details from the information to digest and display back to the user. However, this could turn out to be a stretch goal if we wish to cache information to handle large amounts of data.
This project is configured to deploy on Google App Engine.
You must have Java 8 or above, Apache Maven, and the Google Cloud SDK installed and configured on your local machine. Here's how to install Maven, Java and The Google Cloud SDK.
1) To get started, begin by proceeding to Google Cloud Console and creating an account.
2) Proceed to "Create an Empty Project". You can give the project any name you'd like.
3) Once you've created your project, you should be provided with a "Project ID". Note that this is different than your project name, and should be in the following format: "sample-project-id".
4) Clone this repository. In the pom.xml file, you should see the following code block:
<groupId>com.google.sps</groupId>
<artifactId>INSERT_PROJECT_ID_HERE</artifactId>
<version>1</version>
<packaging>war</packaging>
Replace the artifactId
with your project ID.
5) In the pom.xml file, you should see the following code block:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.2.0</version>
</plugin>
Replace it with this:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<configuration>
<deploy.version>1</deploy.version>
<deploy.projectId>YOUR_PROJECT_ID</deploy.projectId>
</configuration>
<version>2.2.0</version>
</plugin>
Replace YOUR_PROJECT_ID
with your project ID.
It's also worth noting that setting the project ID and version during each deploy using this command also works:
mvn package appengine:deploy -Dapp.deploy.version=<VERSION> -Dapp.deploy..projectId=<PROJECT_ID>
This would remove the need for the above configuration.
To enable an API, navigate to "APIs & Services" -> "Library" -> "
1) Gmail API 2) Tasks API 3) Google Calendar API 4) Geocoding API 5) Places API 6) Directions API 7) Secret Manager API
1) In the src/main/resources
directory, create a new file called KEYS.json
. It should have the following format:
{
"apiKey" : "YOUR KEY",
"clientId" : "YOUR CLIENT ID"
}
2) In the Google Cloud Console, navigate to "APIs and Services" -> "Credentials".
3) Click "Create Credentials", and first select "OAuth Client ID".
4) Select your Application Type as "Web Application", and select a name for the Client ID (anything is fine).
5) Add any origins you may need to the "Authorized JavaScript Origins" and "Authorized redirect URIs". Add every URI that you anticipate using the application from (e.g. localhost:8080 (default localhost for this project), YOUR_PROJECT_ID.appspot.com (the appengine domain), etc.)
6) Copy your project ID and place it in the pom.xml file.
7) Click "Create Credentials" again and select "API Key".
8) Copy the API Key into the pom.xml file.
1) Run gcloud init
and configure GCloud on your computer. When prompted, please enter the numeric choice that
corresponds to the project ID you just created.
2) Run gcloud app create
to create an appengine project. Select any region you'd like, though it is suggested to
select a region close to you. For more information, check this link.
1) Run mvn clean install
in the project root directory
2) Run mvn package appengine:deploy
to deploy the website
3) Navigate to "YOUR_PROJECT_ID.appspot.com". You should see a deployed version of Blueprint! Note that the following format "YOUR_PROJECT_ID.REGION_ID.r.appspot.com" will also work.
A special thanks to the original creators of Blueprint, @austinteshuba, @tttzach, @AymarMuhikira, @antmar, and @gbuenoandrade.
This project is released under the conditions of Apache 2.0.
This is not an officially supported Google product.