Giter Site home page Giter Site logo

e-notes's Introduction

E-Notes

GitHub issues GitHub Workflow Status GitHub stars Typescript Activity Activity Repo Size website

Electronic Notes management system.

Functions

  • Role based permission system
  • User & role management system
  • Display notes in Markdown, HTML or Jupyter Notebooks
  • Management of collections and notes
  • Image uploading

Maintaining

  • frontend/
    • Vue.js application written in TypeScript
    • Is the frontend of the application, everything is client side
  • backend/
    • express.js API backend written in TypeScript
    • Is the backend of the application, everything is server side
  • IDE (optional)
    • .idea/: WebStorm by JetBrains

Testing/Development

To run the application, two npm scripts are to be run simultaneously.

  • backend/ npm run start:dev with environment ENVIRONMENT=local
    • This will run the backend server on port 8080 unless otherwise specified with PORT environment
    • Will automatically restart when changes are made to the code base
    • This is the access point (the application)
  • frontend/ npm run serve
    • Will run the frontend on port 8090
    • This will be used by the backend (the backend acts as a proxy to port 8090)
    • 8090 the port is hardcoded into the backend proxy (proxy only used for development)
    • Will automatically restart when changes are made to the code base
    • This is the frontend, but do not access this port

Building

Simply run npm run build under backend to build both backend and frontend. The frontend build output is also automatically copied over.

e-notes's People

Contributors

hemisemidemipresent avatar junron avatar mug1wara26 avatar octo-kumo avatar squi-ddy avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

e-notes's Issues

Note Reading Progress

save progress of reading notes, done with a vuetify collider

  • when a cell is read, it sends a signal to sevrer
  • server saves the state in a local database
  • client caches info
  • displays progress bar
  • grey out note if fully read

[API] Notes

Things to do for notes

  • Setup firebase storage to store notes
  • API Endpoint to upload notes
  • Allow notes editing (reupload/renaming)
  • Endpoint to access notes
  • Custom styling (optional/future)
  • Comments on notes (optional)
  • Version history (optional)

Things to continue for collections

  • Endpoint to list accessible collections
  • Caching of collections
  • Tests on role system

[API] Permission System

Here are some simple goals to meet in the near future (1-2 weeks)

  • Roles
    • Create new roles
    • Remove roles
    • Change permissions
  • Login System
    • Add login
    • Add user info in firebase
    • Allow assigning roles to users
  • Permission
    • Get list of permissions with user
    • Actually acting like a permission system
    • Per-user-permission system (optional)

[API] Mutable Permissions

For permissions, allow advanced editing of permission bit masks.

  • Change storage
  • Change checking part
  • Migrate data

Client Side Customization

  • Settings page
    • Show pages
    • Theme customization
    • Markdown settings
  • Hide/Show collections
  • Pinned collections

[Front End] Student Panel

  • Add tree view
  • Add collections and its notes to tree view
  • Add roles to tree view
  • Add profile to tree view

Version Control

  • API for history changes, currently old notes are stored as [collection]/[note]/[date it was replaced] in the path.
    Backend should be able to list files based off that and return them in a nicely formatted array
  • Frontend display

Role Lazy-Adding

Create some storage system to store "role assignment action" for users that dont yet exist.
When new user is created, if there exist such a role to be assigned, it should be.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.