Alek-S / SwiftSheet

Upload a CSV to share an online spreadsheet or mock API endpoint that auto-deletes after expiration. No user account needed.

Home Page:https://swiftsheet.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SwiftSheet

Build Status codecov Maintainability styled with prettier

logo

About

Have a CSV you want to quickly share without an account, or quickly mock an API (REST / GraphQL)? We got you.

Drag and drop to upload a CSV, and set how long until it expires, (ex: expire in 1hour or expire in 5 days), and optional password protection.

After upload, you get a sharable minified link to the sheet that others can view online an interactive and filterable spreadsheet, likewise with no account needed. Once sheet expires, the sheet is automatically deleted and the link is no longer valid.

Additionally API endpoints are also temporarily created as both REST and GraphQL for quickly mocking an API off of a CSV file.

File Structure

  • πŸ“ frontend
    • πŸ“ components -- Individual UI components used by pages
    • πŸ“ pages -- full pages react-router can route to, composed of components
    • πŸ“ utils
  • πŸ“ backend
    • πŸ“ controller -- express routes for REST APIs
    • πŸ“ graphql
      • πŸ“ resolver -- functions for how to get or mutate data
      • πŸ“ schema -- GraphQL API Schema (Queries, Mutations)
    • πŸ“ model -- data model for use by Mongooose with MongoDB
  • πŸ“ shared -- shared between front and back code
  • πŸ“ test -- jest configs

Technology Used

Front

  • React 16.8 (the one with hooks)
  • React Router
  • Apollo (GraphQL)
  • AG-Grid
  • Styled Components
  • Jest (Unit Testing - Precommit Hooks)
  • Prettier (Via Precommit Hooks)
  • Pako (zlib deflate)
  • Date-FNS
  • Babel
  • Webpack

Back

  • Node
  • Express-GraphQL
  • Mongoose
  • MongoDB
  • Pako (zlib inflate)
  • Prettier

Deployment + Tools

  • Ubuntu Linux VPS
  • PM2
  • NGINX
  • CloudFlare CDN
  • Sentry.io (Client-Side Error Reporting)
  • Code Climate (Code Quality & Maintainability analysis)
  • Snyk (package vulnerability detection)
  • Travis CI (used to run unit tests before merging PR - not used to deploy)

About

Upload a CSV to share an online spreadsheet or mock API endpoint that auto-deletes after expiration. No user account needed.

https://swiftsheet.app/

License:Apache License 2.0


Languages

Language:JavaScript 99.7%Language:Dockerfile 0.2%Language:CSS 0.1%