Skip to content

Extended note-taking app for programming students

Notifications You must be signed in to change notification settings

HFx6/syntax

 
 

Repository files navigation

syntax

COMPSCI 399 Project 10 (Extended note-taking app for programming students)

syntax is a multi-platform note-taking application designed specifically for programming students. In order to meet the needs of its target audience, the application supports writing, compiling, and executing code. It also contains many additional note-taking features, including searchable code snippets, drawing & stylus support, exportable notes, image upload, Youtube video embeds, and collaborative note creation.

Further information, documentation, and considerations can be found at https://github.com/uoa-compsci399-s2-2022/syntax/wiki

Deployed at http://syntaxapp.vercel.app/

https://vercel.com/?utm_source=10outof10&utm_campaign=oss

Interface

Editor

Editor (dark mode)Editor (light mode)

Home Page

Home page (dark mode)Home page (light mode)

Sign In Page (via Google)

Sign in page (dark mode)Sign in page (light mode)

Technologies

Languages

  • Typescript
  • Javascript

Libraries/Frameworks/APIs

  • React (17.0.2)
  • Prisma (4.2.1)
    • prisma-client (4.3.1)
  • Next.js (12.3.1)
  • NextAuth.js (4.10.3)
    • next-auth/prisma-adapter (1.0.4)
  • next-pwa (5.5.4)
  • next-themes (0.2.0)
  • NextUI (1.0.0-beta.9)
  • heroicons (2.0.11)
  • Tiptap (2.0.0-beta.199)
  • Prosemirror
    • prosemirror-state (1.4.1)
    • prosemirror-view (1.28.2)
  • CodeMirror
    • codemirror/view (6.2.4)
    • codemirror/commands (6.1.0)
    • codemirror/language (6.2.1)
  • TIO.run (AviFS/tio-api)
  • Turndown (7.1.1)
  • Y.js (13.5.41)
  • lodash (4.17.21)
  • AWS SDK (2.1204.0)
  • tldraw (1.24.5)
  • md-to-pdf (5.1.0)
  • lru-cache (7.14.0)

Cloud Services

  • Amazon S3 (AWS)

Getting Started

To get started, clone this repo and install all dependencies:

$ git clone https://github.com/uoa-compsci399-s2-2022/syntax.git
$ npm install

To use Prisma with the application, generate the schema bindings via:

$ npx prisma generate

And the init the database with the required collections:

$ npx prisma db push

These are required steps, not doing so will cause the compile to fail.

Any changes made to the schema will require you to re-generate the Prisma client - this also means that any previously created objects that now break the schema may fail.

The following environment variables must be set:

  • S3_SECRET_KEY
  • S3_ACCESS_KEY
  • AWS_BUCKET_REGION
  • AWS_BUCKET_NAME
  • NEXTAUTH_SECRET
  • NEXTAUTH_URL
  • GOOGLE_SECRET
  • GOOGLE_ID
  • DATABASE_URL

Read more about them here.

If hosting through Vercel, you can link a project to handle storing the environment variables for dev, preview and prod:

$ npm install -g vercel
$ vercel link
. . .
$ vercel env pull

When deploying to Vercel, you may not wish to build every branch in your repo. To prevent this, you can skip "build-steps".

An example to only track and build "Production":

[ "$VERCEL_ENV" != production ]

Project Management Tools

Future Plans

Read here in the Wiki

Acknowledgements

Our client Paravmir and sponsor Vercel.

Team 10 out of 10

Name Role
Lucy Jane Dionisio Team Leader, Frontend Developer, Designer
Lily Howan Frontend Developer, Designer
Sarah Kim Backend Developer
Hayden White Backend Developer, Designer
Kevin Yip Backend Developer

About

Extended note-taking app for programming students

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 90.0%
  • TypeScript 5.8%
  • CSS 4.2%