Microsoft Hackathon Project - TraveLog
TraveLog is an android app that allows users to log their journey when they're out and about (to new places, events, etc.). The app utilizes Microsoft Open365 Graph APIs.
- Sundar Siva (firstname.lastname@example.org)
- Prerak Trivedi (email@example.com)
- Krunal Shah (firstname.lastname@example.org)
The following functionalities are completed:
- [x] User can authenticate using the Microsoft Open365 Account
- [x] User can view their profile information (using the Navigation Menu)
- [x] User can see their Name, Profile Photo, Email, Phone Number
- [x] User can view a list of their Friends (Contacts)
- [x] On the Homescreen, user can swipe between different categories of their logs (sections in the notebook)
- [x] In each section on the homepage, user can see a list of the log entries (pages in that section)
- [x] User can click on a single log entry to view the detail of that Log
- [x] User can view the text & HTML content along with rich media such as Images that are part of that Log entry (page).
- [x] User can share this log entry via [Microsoft Graph Email API] with their friends.
- [x] User can long click on a single log entry to view more options such as:
- [x] Share the Log with other apps (using ShareIntent)
- [x] Copy a URL to that Log entry
- [x] Delete the Log entry from that section
- [x] User can create a new Log entry in that section by adding at least a Title and Description
- [x] User can create a plain text Log entry
- [x] User can add images to the Log entry
- [x] User can create a new Category on their Homepage (by using the Toolbar action)
The following Microsoft Graph APIs were Used are used:
- Authorization using the AuthenticationManager
- Get the User Detail
- Get the User's profile photo
- Get the User's friend list
- Get the User's sections
- Get the Pages in a section
- Get the Details of a page
- Get the image/resource content of a Page
- Create a simple page or with embedded media
- Create a section along with a page
- Mail the page via the send mail API
- Delete a Page
- The team present was really helpful at debugging/answering queries.
- The GitHub sample repository is helpful but not fully comprehensive.
- Registration process was too dispersed
- The documentation for some of the APIs were incorrect/incomplete.
- Provide an explicit resolved URLs for the image content instead of providing byte streams
- The [/me/notes/pages] endpoint creates a new notebook and not a section inside the existing primary notebook
Open-source libraries used
- Retrofit - For network calls
- Picasso - Image loading and caching library for Android
- GSON - For deserializing the JSON to POJOs etc.
Copyright  [Team TraveLog] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.