Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/himkt/interest
👀 Interest: Organizing papers+materials which you are interested in. Serverless application powered by GitHub pages + Google Spreadsheet.
https://github.com/himkt/interest
github-pages google-apps-script google-spreadsheet paper react research-tool typescript
Last synced: about 2 months ago
JSON representation
👀 Interest: Organizing papers+materials which you are interested in. Serverless application powered by GitHub pages + Google Spreadsheet.
- Host: GitHub
- URL: https://github.com/himkt/interest
- Owner: himkt
- Created: 2018-11-04T13:05:37.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T04:14:53.000Z (about 2 years ago)
- Last Synced: 2024-11-23T16:51:39.634Z (about 2 months ago)
- Topics: github-pages, google-apps-script, google-spreadsheet, paper, react, research-tool, typescript
- Language: TypeScript
- Homepage: https://himkt.github.io/interest
- Size: 4.45 MB
- Stars: 15
- Watchers: 4
- Forks: 2
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Interest
Paper management system built on GitHub Pages and Google {Forms, Sheets, Apps Script}.
## Adding items
### Form
You can add a paper with Google Form.
### Spreadsheet
You can view added papers on Google Spreadsheet.
## API to get papers
Interest uses Google Apps Script to build API to get papers from a spreadsheet.
```javascript
var schema = {
timeStamp: 0,
title: 3,
authors: 2,
isRead: 1,
sourceShort: 4,
year: 5,
paperLink: 6,
keywords: 8,
note: 7,
paperType: 10,
issueLink: 11,
source: 12,
};function toDict (row) {
var item = {}
for (var key in schema) item[key] = row[schema[key]];
return item;
};function fetchPapers() {
var paperListSpreadSheet = SpreadsheetApp.
openById("your_spreadsheet_id").
getSheetByName("Form Responses 1");
var paperList = paperListSpreadSheet.getDataRange().getValues().map(function(row, index) {
if (index == 0) return; // header
return toDict(row);
}).filter(function(ret) { return ret != null} );
Logger.log(paperList);
return JSON.stringify(paperList);
}function doGet() {
const paperListJson = fetchPapers();
return ContentService.createTextOutput(paperListJson);
}
```## Blog article
- https://qiita.com/klis/items/05e421593fe4d4aebad0