/kramo

당신을 위한 메모 어플리케이션!

Primary LanguageTypeScriptOtherNOASSERTION

TEST MIT License

KRAMO


A memo application that keeps track of you in a diachronic and synchronic way.
You can access your traces with the current memo content itself.
Both the WYSIWYG editor and the Markdown editor are supported.
No Signup is needed if you have a NAVER account.
Try it now!

About The ProjectGetting StartedDocumentationLicenseAuthors


About The Project

Project URL (TBD)

Key Features

  • Simple UI

  • Markdown Support
  • Naver Login

  • Each modification saves a certain amount of history, so you can roll back to that history.
  • Memo Category Features
  • Weather and location storage available

Getting Started

Prerequisites

  • Installation of Node.js, React and TypeScript is required.
  • Optional installation of A and B is recommended.

Installation

  1. Please make sure you meet the prerequisites.
  2. Clone the repo
    $ git clone https://github.com/Memo8-KoreaUniv/kramo.git
    $ cd kramo
  3. Install requirements
    $ npm i
  4. Edit configuration .env.*
  • To run the project, you need to add the following environment variables to your .env.* files.
  • You can contact us by issue if you need help with your .env.* files, since the security is required of environment variables.

Documentation

Documentation API Docs

Running Tests

To conduct tests, run the following command in your terminal.

$ npm run test

Linting

ES-Lint is used to capture anti-patterns and maintain a consistent code style.

How to lint

$ npm run lint

or in your root directory

$ eslint **/*.{js,ts,tsx}

Lint Rules

eslintrc.js

module.exports = {
  root: true,
  env: {
    node: true,
    es6: true,
  },
  parserOptions: { ecmaVersion: 2020 }, // to enable features such as async/await
  ignorePatterns: ['node_modules/*', '.next/*', '.out/*', '!.prettierrc.js'], // We don't want to lint generated files nor node_modules, but we want to lint .prettierrc.js (ignored by default by eslint)
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
    'plugin:react/recommended',
  ],
  plugins: [
    'react',
    'import', // eslint-plugin-import for custom configure
  ],
  settings: {
    'import/parsers': {
      '@typescript-eslint/parser': ['.ts', '.tsx'],
    },
    'import/resolver': {
      typescript: {
        alwaysTryTypes: true,
      },
    },
  },
  overrides: [
    // This configuration will apply only to TypeScript files
    {
      files: ['**/*.ts', '**/*.tsx'],
      parser: '@typescript-eslint/parser',
      settings: { react: { version: 'detect' } },
      env: {
        browser: true,
        node: true,
        es6: true,
      },
      extends: [
        'eslint:recommended',
        'plugin:@typescript-eslint/recommended', // TypeScript rules
        'plugin:react/recommended', // React rules
        'plugin:react-hooks/recommended', // React hooks rules
        'plugin:jsx-a11y/recommended', // Accessibility rules
      ],
      rules: {
        // We will use TypeScript's types for component props instead
        'react/prop-types': 'off',

        // No need to import React when using Next.js
        'react/react-in-jsx-scope': 'off',

        // This rule is not compatible with Next.js's <Link /> components
        'jsx-a11y/anchor-is-valid': 'off',

        // fuction return
        '@typescript-eslint/explicit-function-return-type': 'off',
        '@typescript-eslint/explicit-module-boundary-types': 'off',

        // no-non-null-assertion
        '@typescript-eslint/no-non-null-assertion': 'off',

        // Why would you want unused vars?
        '@typescript-eslint/no-unused-vars': ['error'],

        '@typescript-eslint/no-explicit-any': 'off',
        'import/order': [
          'error',
          {
            groups: ['builtin', 'external', 'internal'],
            pathGroups: [
              {
                pattern: 'react',
                group: 'external',
                position: 'before',
              },
            ],
            pathGroupsExcludedImportTypes: ['react'],
            'newlines-between': 'always',
            alphabetize: {
              order: 'asc',
              caseInsensitive: true,
            },
          },
        ],
      },
    },
  ],
}

Tech Used


Client

Server

ETC


Authors

SeoSang

pyville

panggyun

vwjdtjdwnsv

License

Distributed under the MIT License.