SyncMy.Info









ionic-framework-fr.pdf

You can share this PDF with anyone you feel could benefit from it downloaded composants CSS / SASS personnalisés ainsi que des extensions d'interface ...
ionic framework fr


Jspdf html page breaks examples pdf

By default html2pdf.js will respect most CSS break-before
levowow


Html To Pdf Js Example Modern Litho

Load this works means that to pdf converting a renderer object to html pdf files HTML CSS to pdf using javascript JS API Jspdf html to.
html to pdf js example


Crop image jspdf

pdf jQuery annotations jspdf add base image64





Convert Html Table To Pdf Using Javascript

Generate PDF from HTML with CSS Download html table will convert pdf converting ... HTML table values into PDF using jsPDF Innovators.
convert html table to pdf using javascript


export-html-table-to-word-using-jquery.pdf

by including the CSS in the exported HTML. Any jquery file exported HTML to PDF with JavaScript Convert HTML content to PDF using jsPDF and jQuery.
export html table to word using jquery


Add page break in jspdf

To capture the default PDF of the entire page use html2pdf(document.body). Saves the PDF object with an optional file name (prompts you to download the ...
b ef


Guide-Pratique-PRONOTE-FR-2021.pdf

É Quelles sont les données personnelles contenues dans PRONOTE ? Une base de données PRONOTE peut contenir un grand nombre de données personnelles :.
Guide Pratique PRONOTE FR





PDFs in Drupal - DrupalCon Nashville 2018.pdf

PDFs are universal as a document format but can feel left behind in support Rendering Libraries: jsPDF ... Only officially supports CSS 2.1 and HTML 5.
PDFs in Drupal DrupalCon Nashville


SyncMy.Info

PDF; jsPDF.js implementation; predefined format and download it as a PDF. ... Javascript along with HTML/CSS to create a web application.
finalreport syncmyinfo


213459 SyncMy.Info

SyncMy.Info Capstone 2014 Final Report 1 Department of Electrical and Computer Engineering Capstone Design - Computer Systems Spring 2014 SyncMy.Info Project site: sites.google.com/site/RUPlanIt Team Members Ikshat Gandhi Luke Xu Prit Patel Darryl Nable

SyncMy.Info Capstone 2014 Final Report 2 Table of Contents Contributions................................................................................................3 Abstract.......................................................................................................4 Overview......................................................................................................5 Future Work..................................................................................................7 Approach and Results.....................................................................................8 Use Cases...................................................................................................13 Cost/Sustainability Analysis..............................................................................17 Conclusion...................................................................................................18

SyncMy.Info Capstone 2014 Final Report 3 Contributions Name Contribution Ikshat Gandhi PDF.js implementation; Regular expression implementation; Date.js implementation; Extracting data from PDF; Website design; Video/Poster Creation Prit Patel Regular expressions implementation; extracting data from PDF; Providing data in Google Calendar API Format using Date.js; Website Design; Testing; Video Create/Edit; Poster Creation Darryl Nable Google Calendar API Integration; Google Authentication; Video; Poster Creation; Testing Luke Xu Create Syllabus section; Writing Data to PDF; jsPDF.js implementation; Algorithmic approach for dynamic PDF locations; Website Design; Video Creation; Testing

SyncMy.Info Capstone 2014 Final Report 4 Abstract College students struggle to stay organized, and this lack of organization often has negative effects on the their grades. Many students try to stay organized by adding important dates to their calendars, but this becomes tedious since there are hundreds of events to enter each semester. They often get discouraged while entering events due to the substantial amount time the process takes. With this in mind, we created the application SyncMy.Info. SyncMy.Info is an effort towards solving this problem. We have substantially cut down the time and effort it takes to organize a class. Once a student uploads a syllabus, the application takes care of finding, extracting and syncing relevant and important information. We were able to add thirty dates from a syllabus to our calendar in under five seconds. Google Calendar support is integrated with the application. This enables users to view the synced events from multiple platforms including laptops and smart phones. In addition to serving students, we have added support to create syllabus in order to help professors. This means professors don't have to worry about formatting the document. We provide pre-defined fields and the ability to instantly download the PDF so that it can easily distributed.

SyncMy.Info Capstone 2014 Final Report 5 Overview Our main focus was to make the process easy and intuitive for our users. We made this application because we, as students, have been through the cumbersome and inefficient process of organizing assignments and exams. The idea was very well received amongst our peers and we think it solves a problem most students face at some point in their college careers. We've used several libraries and technologies to implement the application. Our detailed implementation is documented in a later section; however, our approach for syncing a document can be summarized as follows:

SyncMy.Info Capstone 2014 Final Report 6 In order to make the entire process intuitive and simple, user input is only needed to upload the PDF file and to authenticate their Google account. Everything else is taken care of behind the scenes. We respect our users' privacy; no data will be synced unless they authenticate their Google account. We follow a similarly simple approach to create syllabus. Majority of our user base for creating a syllabus will be professors. Knowing this, we decided to automate the most time consuming part of syllabus-creation process: formatting the document. Once course information has been provided, the data is automatically displayed in a well laid-out and easy-to-follow document. Again, the detailed implementation is documented in a later section but our approach can be summarized as follows:

SyncMy.Info Capstone 2014 Final Report 7 Future Work SyncMy.Info was created with the intention of helping college students stay organized. We believe we have accomplished this goal through this application. In the future, the application could be expanded to support multiple calendars such as Yahoo calendar, iCal, etc. We will also work on supporting more date formats to further expand the scope of this application. Further, we could also integrate this system with Rutgers University, through which professors can generate syllabi through the predefined format and download it as a PDF. Sakai calendar support can also be incorporated within the application, which would allow professors as well as students to sync all the events to sakai calendar.

SyncMy.Info Capstone 2014 Final Report 8 Approach and Results Creating a Syllabus We wanted to create a simple solution for professors to create a syllabus for their class without the hassle of the complex formatting. The approach we took to create the syllabus was to have the client, written in JavaScript, handle all the work. We currently do not pass any information onto the server. We decided that it was unnecessary to store any syllabi information in a MySQL database or any other sort of database. It is possible that in the future we could implement a functionality that enables professors to save syllabi and then recall saved syllabi to modify for future classes. Figure 1. We divided the Create Syllabus section into three parts. The first part contains all of the header information essential to all college classes as shown above. This section contains nine fields and all fields are mandatory. The first third of the information is stored internally within an HTML table named "headerTable" which contains all the Input/form pairs. The second part allows users to write an arbitrary amount of course related information they desire in the following format:

SyncMy.Info Capstone 2014 Final Report 9 Figure 2 Users can then create or remove as many fields as they please, as long as there is at least one. We have error checking that disallows users to delete the last Input/form field; however, there is no limit to the number of fields a user can create. The second third of the information is stored in a similar format named "descTable". Figure 3 The last part is the most important part as it is the part that syncs with Google Calendar. The date section, as shown above, needs to be in a certain format (six acceptable formats) in order for our application to register the dates. The description can be anything such as homework, quiz, exam, etc and that information will show up in the descriptions section of the google calendar. The information in the last section is contained in the "schedTable". As long as the user follows the six acceptable date formats, the syllabus will be fully supported with our syncing implementation. Lastly the client extracts all of the information stored in the three tables and mathematically calculates the necessary positions where all the text needs to be placed. Because jsPDF does not dynamically calculate the position, it was necessary to use

SyncMy.Info Capstone 2014 Final Report 10 Math.Floor() functions, as seen in the example below, to create the illusion of tables. Because the tables can be dynamic due to the user creating/remove rows, then each table also returns the value of the location of the last element to pass onto the table. The next table then fetches this new position and treats it as it's new starting point and everything is offset by the previous coordinates. for(vari=0;i<9;i++){ if(i==0){ doc.setFontSize(20); doc.center(headerElements[i].value,{align:"center"},HeadingHeight,HeadingHeight); } elseif(i==1){ doc.setFontSize(14); doc.center(headerElements[i].value,{align:"center"},SubHeadingHeight,SubHeadingHeight); } else{ doc.setFontSize(12); if(i%2==0){ doc.text(10,SpaceBtwnTable*Math.floor(i/2)+VerticalOffset,labelElements[i].innerHTML); doc.text(40,SpaceBtwnTable*Math.floor(i/2)+VerticalOffset,headerElements[i].value); } else{ doc.text(95,SpaceBtwnTable*Math.floor(i/2)+VerticalOffset,labelElements[i].innerHTML); doc.text(125,SpaceBtwnTable*Math.floor(i/2)+VerticalOffset,headerElements[i].value); } } } Figure 4

SyncMy.Info Capstone 2014 Final Report 11 Syncing a syllabus We wanted our event-syncing functionality to be easily accessible and usable by as many students as possible. With these parameters in mind, we decided to use Javascript along with HTML/CSS to create a web application. The user-facing design is minimal and intuitive. We took advantage of jQuery to handle some events and effects. Once the user clicks on "Sync a Syllabus" they are brought to an upload page. All instructions regarding file and date formats are clearly laid out. We used HTML form submissions to handle file uploads. As an added convenience, we have error handling in place to make sure only PDF files are uploaded. If any other format is uploaded, the user gets a friendly warning. After uploading, users are brought to a document-preview page. Here, we use iframes to show the uploaded document and give users the option to start the synchronization process. As soon as users are presented with the preview, the data extraction begins. The PDF is placed in an ArrayBuffer using XMLHTTPRequest as it is displayed in the frame. PDF.js adds an overlay to the document and text is extracted on a row-by-row basis. This text is unfiltered and contains a lot of information that should not be sent to the calendar. We use regular expressions in order to find the relevant information. We support the following date formats:

SyncMy.Info Capstone 2014 Final Report 12 Following the process, each row is passed through the regular expression and the filtered data is stored in an array of objects. Each object contains capturing group with the filtered data broken down into useful parts. The user is notified of each step in this process with a status message. Once the extraction process has completed, user is able to click the "Sync with Google Calendar" button. Behind the scenes, we take the filtered array of objects and submit information to the Google Calendar API. Google accepts data in JSON format with start date, end date and event summary (sample event submission shown below). Google only accepts dates in YYYY-MM-DD format. Therefore, any date that is found is converted to this format using Date.js. Before the data can be sent to Google, user needs to authenticate their Google account. The Google API handles this authentication process.

SyncMy.Info Capstone 2014 Final Report 13 Use Cases Use Case 1 Creating syllabus using SyncMy.Info Initiating Actor Professor Actor's Goal To create a syllabus in PDF format Participating Actors Client Precondition None Postcondition Syllabus is successfully created → 1. User clicks on "Create Syllabus" button ← 2. The website brings the user to create syllabus page. → 3. The user fills in all the required information for the syllabus heading → 4. The user clicks the next button → 5. The user fills in all the required information for the description → 6. The user clicks the next button → 7. The user fills in all the required information for the schedule → 8. The user clicks the Create Syllabus button ← 9. The client extracts all the information and gives it to the corresponding tables ← 10. The client then prints out information stored within the tables onto a pdf format ← 11. The syllabus is now displayed and in the browser and can be downloaded

SyncMy.Info Capstone 2014 Final Report 14 Use Case 2 Syncing syllabus generated by SyncMy.Info Initiating Actor Student Actor's Goal Sync syllabus to actors Google Calendar Participating Actors Website, Server, Google Calendar Precondition Student has a SyncMy.Info generated PDF syllabus Student has a Google Account Postcondition Events from Syllabus are successfully synced with Google Calendar → 1. User clicks on "Sync a Syllabus" button ← 2. The website brings the user to upload syllabus page. → 3. The user clicks "add file" button and adds SyncMy.Info generated syllabus. → 4. The user clicks "start upload" button ← 5. The user is brought to the sync with calendar page → 6. Once rendering and extraction completes, the user clicks on "Sync with Google Calendar" button. ← 7. The user is brought to a Google login page. → 8. The user logs-in with their Google credentials and the events are successfully synced with their Google Calendar. Alternate Scenario The user is already logged into their Google Account and their events are successfully synced with their Google Calendar.

SyncMy.Info Capstone 2014 Final Report 15 Use Case 3 Syncing syllabus generated by source other than SyncMy.Info Initiating Actor Student Actor's Goal Sync syllabus to actors Google Calendar Participating Actors Website, Server, Google Calendar Precondition Student has a PDF syllabus with one of the six accepted formats Student has a Google Account Postcondition Events from Syllabus are successfully synced with Google Calendar → 1. The student clicks on "sync a syllabus" button ← 2. The website brings the user to upload syllabus page. → 3. The user clicks "add file" button and adds a syllabus generated by source other than SyncMy.Info and the syllabus uses one of the six supported date formats. → 4. The user clicks "start upload" button ← 5. The user is brought to the sync with calendar page → 6. Once rendering and extraction completes, the user clicks on "Sync with Google Calendar" button. ← 7. The user is brought to a Google login page. → 8. The user logs in with their Google credentials and the events are successfully synced with their Google Calendar. Alternate Scenario The user is already logged into their Google Account and their events are successfully synced with their Google Calendar.

SyncMy.Info Capstone 2014 Final Report 16 Use Case 4 Syncing syllabus generated by source other than SyncMy.Info Initiating Actor Student Actor's Goal Sync syllabus to actors Google Calendar Participating Actors Website, Server, Google Calendar Precondition Student has a PDF syllabus not in one of the six accepted date formats Student has a Google Account Postcondition Events from Syllabus are improperly synced with Google Calendar → 1. The student clicks on "sync a syllabus" button ← 2. The website brings the user to upload syllabus page. → 3. The user clicks "add file" button and adds a syllabus generated by source other than SyncMy.Info and the syllabus doesn't use one of the six supported date formats. → 4. The user clicks "start upload" button ← 5. The user is brought to the sync with calendar page → 6. Once rendering and extraction completes, the user clicks on "Sync with Google Calendar" button. ← 7. The user is brought to a Google login page. → 8. The user logs in with their Google credentials and the events are improperly synced with their Google Calendar. Alternate Scenario The user is already logged into their Google Account and their events are improperly synced with their Google Calendar.

SyncMy.Info Capstone 2014 Final Report 17 Cost/Sustainability Analysis Since this project is web based, the only foreseeable costs would be the costs associated with maintaining the SyncMy.info domain name along with the appropriate servers for the website to function smoothly. With our future work and ambitions being to spread the use of this system to all Rutgers courses, future costs would increase depending on the number of users implementing this software. As of right now, SyncMy.info is allotted to use the minimum number of queries to Google API, which is 100,000 queries per day. If the project were to expand, then a higher level of allowed queries per day would be needed, which can be purchased from Google. Rutgers could also have SyncMy.info compatible with more calendars than just Google Calendar, which will add costs for querying those particular calendars. Similarly, as the project can be expanded to all of Rutgers courses, it can grow even greater to surrounding colleges and beyond. Overall, the total costs of sustaining this project will be dependent on the number of users and requests for compatibility with more calendars.

SyncMy.Info Capstone 2014 Final Report 18 Conclusion/Summary Our application is fully functional and is available for use at http://www.syncmy.info. We have tested all aspects of the application and we were successfully able to generate a syllabus and sync a syllabus for a class offered at Rutgers University. The following is a list of technologies/libraries that we used in this project: HTML CSS (Bootstrap) Javascript / JQuery PHP PDF.js jsPDF Date.js We would like to thank Dr. Manish Parashar for his guidance in this project and our peers for their feedback. We hope the faculty and students will find this application useful.

SyncMy.Info Capstone 2014 Final Report 1 Department of Electrical and Computer Engineering Capstone Design - Computer Systems Spring 2014 SyncMy.Info Project site: sites.google.com/site/RUPlanIt Team Members Ikshat Gandhi Luke Xu Prit Patel Darryl Nable

SyncMy.Info Capstone 2014 Final Report 2 Table of Contents Contributions................................................................................................3 Abstract.......................................................................................................4 Overview......................................................................................................5 Future Work..................................................................................................7 Approach and Results.....................................................................................8 Use Cases...................................................................................................13 Cost/Sustainability Analysis..............................................................................17 Conclusion...................................................................................................18

SyncMy.Info Capstone 2014 Final Report 3 Contributions Name Contribution Ikshat Gandhi PDF.js implementation; Regular expression implementation; Date.js implementation; Extracting data from PDF; Website design; Video/Poster Creation Prit Patel Regular expressions implementation; extracting data from PDF; Providing data in Google Calendar API Format using Date.js; Website Design; Testing; Video Create/Edit; Poster Creation Darryl Nable Google Calendar API Integration; Google Authentication; Video; Poster Creation; Testing Luke Xu Create Syllabus section; Writing Data to PDF; jsPDF.js implementation; Algorithmic approach for dynamic PDF locations; Website Design; Video Creation; Testing

SyncMy.Info Capstone 2014 Final Report 4 Abstract College students struggle to stay organized, and this lack of organization often has negative effects on the their grades. Many students try to stay organized by adding important dates to their calendars, but this becomes tedious since there are hundreds of events to enter each semester. They often get discouraged while entering events due to the substantial amount time the process takes. With this in mind, we created the application SyncMy.Info. SyncMy.Info is an effort towards solving this problem. We have substantially cut down the time and effort it takes to organize a class. Once a student uploads a syllabus, the application takes care of finding, extracting and syncing relevant and important information. We were able to add thirty dates from a syllabus to our calendar in under five seconds. Google Calendar support is integrated with the application. This enables users to view the synced events from multiple platforms including laptops and smart phones. In addition to serving students, we have added support to create syllabus in order to help professors. This means professors don't have to worry about formatting the document. We provide pre-defined fields and the ability to instantly download the PDF so that it can easily distributed.

SyncMy.Info Capstone 2014 Final Report 5 Overview Our main focus was to make the process easy and intuitive for our users. We made this application because we, as students, have been through the cumbersome and inefficient process of organizing assignments and exams. The idea was very well received amongst our peers and we think it solves a problem most students face at some point in their college careers. We've used several libraries and technologies to implement the application. Our detailed implementation is documented in a later section; however, our approach for syncing a document can be summarized as follows:

SyncMy.Info Capstone 2014 Final Report 6 In order to make the entire process intuitive and simple, user input is only needed to upload the PDF file and to authenticate their Google account. Everything else is taken care of behind the scenes. We respect our users' privacy; no data will be synced unless they authenticate their Google account. We follow a similarly simple approach to create syllabus. Majority of our user base for creating a syllabus will be professors. Knowing this, we decided to automate the most time consuming part of syllabus-creation process: formatting the document. Once course information has been provided, the data is automatically displayed in a well laid-out and easy-to-follow document. Again, the detailed implementation is documented in a later section but our approach can be summarized as follows:

SyncMy.Info Capstone 2014 Final Report 7 Future Work SyncMy.Info was created with the intention of helping college students stay organized. We believe we have accomplished this goal through this application. In the future, the application could be expanded to support multiple calendars such as Yahoo calendar, iCal, etc. We will also work on supporting more date formats to further expand the scope of this application. Further, we could also integrate this system with Rutgers University, through which professors can generate syllabi through the predefined format and download it as a PDF. Sakai calendar support can also be incorporated within the application, which would allow professors as well as students to sync all the events to sakai calendar.

SyncMy.Info Capstone 2014 Final Report 8 Approach and Results Creating a Syllabus We wanted to create a simple solution for professors to create a syllabus for their class without the hassle of the complex formatting. The approach we took to create the syllabus was to have the client, written in JavaScript, handle all the work. We currently do not pass any information onto the server. We decided that it was unnecessary to store any syllabi information in a MySQL database or any other sort of database. It is possible that in the future we could implement a functionality that enables professors to save syllabi and then recall saved syllabi to modify for future classes. Figure 1. We divided the Create Syllabus section into three parts. The first part contains all of the header information essential to all college classes as shown above. This section contains nine fields and all fields are mandatory. The first third of the information is stored internally within an HTML table named "headerTable" which contains all the Input/form pairs. The second part allows users to write an arbitrary amount of course related information they desire in the following format:

SyncMy.Info Capstone 2014 Final Report 9 Figure 2 Users can then create or remove as many fields as they please, as long as there is at least one. We have error checking that disallows users to delete the last Input/form field; however, there is no limit to the number of fields a user can create. The second third of the information is stored in a similar format named "descTable". Figure 3 The last part is the most important part as it is the part that syncs with Google Calendar. The date section, as shown above, needs to be in a certain format (six acceptable formats) in order for our application to register the dates. The description can be anything such as homework, quiz, exam, etc and that information will show up in the descriptions section of the google calendar. The information in the last section is contained in the "schedTable". As long as the user follows the six acceptable date formats, the syllabus will be fully supported with our syncing implementation. Lastly the client extracts all of the information stored in the three tables and mathematically calculates the necessary positions where all the text needs to be placed. Because jsPDF does not dynamically calculate the position, it was necessary to use

SyncMy.Info Capstone 2014 Final Report 10 Math.Floor() functions, as seen in the example below, to create the illusion of tables. Because the tables can be dynamic due to the user creating/remove rows, then each table also returns the value of the location of the last element to pass onto the table. The next table then fetches this new position and treats it as it's new starting point and everything is offset by the previous coordinates. for(vari=0;i<9;i++){ if(i==0){ doc.setFontSize(20); doc.center(headerElements[i].value,{align:"center"},HeadingHeight,HeadingHeight); } elseif(i==1){ doc.setFontSize(14); doc.center(headerElements[i].value,{align:"center"},SubHeadingHeight,SubHeadingHeight); } else{ doc.setFontSize(12); if(i%2==0){ doc.text(10,SpaceBtwnTable*Math.floor(i/2)+VerticalOffset,labelElements[i].innerHTML); doc.text(40,SpaceBtwnTable*Math.floor(i/2)+VerticalOffset,headerElements[i].value); } else{ doc.text(95,SpaceBtwnTable*Math.floor(i/2)+VerticalOffset,labelElements[i].innerHTML); doc.text(125,SpaceBtwnTable*Math.floor(i/2)+VerticalOffset,headerElements[i].value); } } } Figure 4

SyncMy.Info Capstone 2014 Final Report 11 Syncing a syllabus We wanted our event-syncing functionality to be easily accessible and usable by as many students as possible. With these parameters in mind, we decided to use Javascript along with HTML/CSS to create a web application. The user-facing design is minimal and intuitive. We took advantage of jQuery to handle some events and effects. Once the user clicks on "Sync a Syllabus" they are brought to an upload page. All instructions regarding file and date formats are clearly laid out. We used HTML form submissions to handle file uploads. As an added convenience, we have error handling in place to make sure only PDF files are uploaded. If any other format is uploaded, the user gets a friendly warning. After uploading, users are brought to a document-preview page. Here, we use iframes to show the uploaded document and give users the option to start the synchronization process. As soon as users are presented with the preview, the data extraction begins. The PDF is placed in an ArrayBuffer using XMLHTTPRequest as it is displayed in the frame. PDF.js adds an overlay to the document and text is extracted on a row-by-row basis. This text is unfiltered and contains a lot of information that should not be sent to the calendar. We use regular expressions in order to find the relevant information. We support the following date formats:

SyncMy.Info Capstone 2014 Final Report 12 Following the process, each row is passed through the regular expression and the filtered data is stored in an array of objects. Each object contains capturing group with the filtered data broken down into useful parts. The user is notified of each step in this process with a status message. Once the extraction process has completed, user is able to click the "Sync with Google Calendar" button. Behind the scenes, we take the filtered array of objects and submit information to the Google Calendar API. Google accepts data in JSON format with start date, end date and event summary (sample event submission shown below). Google only accepts dates in YYYY-MM-DD format. Therefore, any date that is found is converted to this format using Date.js. Before the data can be sent to Google, user needs to authenticate their Google account. The Google API handles this authentication process.

SyncMy.Info Capstone 2014 Final Report 13 Use Cases Use Case 1 Creating syllabus using SyncMy.Info Initiating Actor Professor Actor's Goal To create a syllabus in PDF format Participating Actors Client Precondition None Postcondition Syllabus is successfully created → 1. User clicks on "Create Syllabus" button ← 2. The website brings the user to create syllabus page. → 3. The user fills in all the required information for the syllabus heading → 4. The user clicks the next button → 5. The user fills in all the required information for the description → 6. The user clicks the next button → 7. The user fills in all the required information for the schedule → 8. The user clicks the Create Syllabus button ← 9. The client extracts all the information and gives it to the corresponding tables ← 10. The client then prints out information stored within the tables onto a pdf format ← 11. The syllabus is now displayed and in the browser and can be downloaded

SyncMy.Info Capstone 2014 Final Report 14 Use Case 2 Syncing syllabus generated by SyncMy.Info Initiating Actor Student Actor's Goal Sync syllabus to actors Google Calendar Participating Actors Website, Server, Google Calendar Precondition Student has a SyncMy.Info generated PDF syllabus Student has a Google Account Postcondition Events from Syllabus are successfully synced with Google Calendar → 1. User clicks on "Sync a Syllabus" button ← 2. The website brings the user to upload syllabus page. → 3. The user clicks "add file" button and adds SyncMy.Info generated syllabus. → 4. The user clicks "start upload" button ← 5. The user is brought to the sync with calendar page → 6. Once rendering and extraction completes, the user clicks on "Sync with Google Calendar" button. ← 7. The user is brought to a Google login page. → 8. The user logs-in with their Google credentials and the events are successfully synced with their Google Calendar. Alternate Scenario The user is already logged into their Google Account and their events are successfully synced with their Google Calendar.

SyncMy.Info Capstone 2014 Final Report 15 Use Case 3 Syncing syllabus generated by source other than SyncMy.Info Initiating Actor Student Actor's Goal Sync syllabus to actors Google Calendar Participating Actors Website, Server, Google Calendar Precondition Student has a PDF syllabus with one of the six accepted formats Student has a Google Account Postcondition Events from Syllabus are successfully synced with Google Calendar → 1. The student clicks on "sync a syllabus" button ← 2. The website brings the user to upload syllabus page. → 3. The user clicks "add file" button and adds a syllabus generated by source other than SyncMy.Info and the syllabus uses one of the six supported date formats. → 4. The user clicks "start upload" button ← 5. The user is brought to the sync with calendar page → 6. Once rendering and extraction completes, the user clicks on "Sync with Google Calendar" button. ← 7. The user is brought to a Google login page. → 8. The user logs in with their Google credentials and the events are successfully synced with their Google Calendar. Alternate Scenario The user is already logged into their Google Account and their events are successfully synced with their Google Calendar.

SyncMy.Info Capstone 2014 Final Report 16 Use Case 4 Syncing syllabus generated by source other than SyncMy.Info Initiating Actor Student Actor's Goal Sync syllabus to actors Google Calendar Participating Actors Website, Server, Google Calendar Precondition Student has a PDF syllabus not in one of the six accepted date formats Student has a Google Account Postcondition Events from Syllabus are improperly synced with Google Calendar → 1. The student clicks on "sync a syllabus" button ← 2. The website brings the user to upload syllabus page. → 3. The user clicks "add file" button and adds a syllabus generated by source other than SyncMy.Info and the syllabus doesn't use one of the six supported date formats. → 4. The user clicks "start upload" button ← 5. The user is brought to the sync with calendar page → 6. Once rendering and extraction completes, the user clicks on "Sync with Google Calendar" button. ← 7. The user is brought to a Google login page. → 8. The user logs in with their Google credentials and the events are improperly synced with their Google Calendar. Alternate Scenario The user is already logged into their Google Account and their events are improperly synced with their Google Calendar.

SyncMy.Info Capstone 2014 Final Report 17 Cost/Sustainability Analysis Since this project is web based, the only foreseeable costs would be the costs associated with maintaining the SyncMy.info domain name along with the appropriate servers for the website to function smoothly. With our future work and ambitions being to spread the use of this system to all Rutgers courses, future costs would increase depending on the number of users implementing this software. As of right now, SyncMy.info is allotted to use the minimum number of queries to Google API, which is 100,000 queries per day. If the project were to expand, then a higher level of allowed queries per day would be needed, which can be purchased from Google. Rutgers could also have SyncMy.info compatible with more calendars than just Google Calendar, which will add costs for querying those particular calendars. Similarly, as the project can be expanded to all of Rutgers courses, it can grow even greater to surrounding colleges and beyond. Overall, the total costs of sustaining this project will be dependent on the number of users and requests for compatibility with more calendars.

SyncMy.Info Capstone 2014 Final Report 18 Conclusion/Summary Our application is fully functional and is available for use at http://www.syncmy.info. We have tested all aspects of the application and we were successfully able to generate a syllabus and sync a syllabus for a class offered at Rutgers University. The following is a list of technologies/libraries that we used in this project: HTML CSS (Bootstrap) Javascript / JQuery PHP PDF.js jsPDF Date.js We would like to thank Dr. Manish Parashar for his guidance in this project and our peers for their feedback. We hope the faculty and students will find this application useful.