sveltekit-blog Svelte Themes

Sveltekit Blog

Migrating personal blog to SvelteKit from NodeJS/React

Personal Blog Project

Overview

This repository houses a personal blog project.

Features

  • Authentication: User registration and login capability.
  • Text Editor: Content creation and editing functionality.
  • Image Upload: Allows for image attachments in posts.
  • LaTeX Support: Integration for mathematical formulas and notations.

Tech Stack

Initially developed with ReactJS (frontend) and Node.js (backend). Transitioning to SvelteKit is in progress.

Transition to SvelteKit

The move to SvelteKit aims for:

  • Enhanced performance.
  • Reduction in boilerplate code.
  • Preparation for long-term development proficiency.

Contribution

Issues and pull requests are welcome for feature suggestions or improvements.

Questions

For inquiries or feedback, please use the repository's issues section.

TODO

  • Finish Write page.
    • Show Code Block properly in editor.
    • Show language selector properly in editor.
    • Show previous code block properly in post.
    • Check if the new codes are saved with language.
      • Save with language specified
    • Finish KaTex.
    • Finish 'write' request.
    • Redirect after 'write'.
    • Delete the input box before saving.
  • After CRUD operations, the posts should be updated.
    • /test에서 하나씩 테스트해보자.
      • layout에서 parent()로 받아다 쓴 게 문제였음.
      • Delete을 test와 똑같이 만들기.
  • Finish Edit and Draft page.
  • Return 404 when accessing deleted posts.
  • Separate write and update.
  • List is not properly shown in the post.
    • Recognise unordered list properly (QuillJS defect)
    • Add tailwind list style to all old posts, too.
  • In TextEditor, I can't see
      with tailwind class. Fix this.
    • Separate public and private.
    • Make the post non-nullable.
    • Get the next and previous posts.
    • Verify the token properly.
    • Token 만료되면 verifiedUser 없애고 Delete 버튼도 없어야 함.
    • Write and Logout button are hovered together.
    • Dissemble addAge function and show datetime properly for next and previous posts.
    • getPost, getPosts 등등... 레코드 없는 경우 에러 핸들링을 서버로 빼자.
    • Timestamp 관련 의문 해결
      • 현재 DB에는 한국 시간으로 저장돼 있다. 내가 실제로 글을 작성한 시간.
      • 서버에서 글을 불러와 created_at을 확인하면 GMT로 출력된다. 한국 시간이 아니라.
        • 서버에서는 어떻게 DB에서 불러온 값이 한국 시간인 걸 아는 걸까?
        • GPT 왈, 서버는 DB가 보내주는 timestamp가 어떤 타임존에서 작성된 건지 모른다고 한다.
        • 대신, 그 타임존이 "현재 서버 자신이 존재하는 타임존"에서 작성됐을 거라고 추측한다고 한다.
        • 따라서 DB가 보내주는 timestamp가 GMT+9 기준이겠거니 하는 가정을 한다는 것이다.
      • 서버로부터 글을 받아 프론트에 출력하면 GMT+0900 (Korean Standard Time)가 출력된다.
        • 결국 서버에서 UTC 시간을 잘 주었고, 그걸 브라우저 현지 시각으로 표현해주는 것이다.
    • Render HTML in post previews.
    • In TextEditor, I can't see codes. Fix this.
    • Search function needs to be finished.
    • Finish Footer.
      • Refactor Tailwind Design
      • Scroll down
      • Link
    • Finish Excerpts page.
      • Change from VARCHAR to MEDIUMTEXT.
      • Change to 'soft delete'.
      • Delete action should be refined.
    • Check if the delete confirmation works properly.
    • Make the list page.
    • Add Photography, Learning, and Books categories.
    • Change /test to principles or another page.
    • 전반적인 리팩터링 (중복 코드 없애고, 깔끔하게 만들기)
      • Remove all custom types and make shared type files.
      • CRUD 과정 복기하기
      • Auth 과정 복기하기
        • tokenExpiresAt이 어떻게 쓰이지?
        • 현재는 회원이 1명이라고 가정하고 있다. verifiedUser라도 자기 글만 컨트롤할 수 있어야 한다.
      • TextEditor 리팩터링
        • 이전 status 및 type 받아오기
        • Reduce the number of lines
    • Footer에서 disc 생길 때도 있고 아닐 때도 있는데 이유가 뭘까? 고치자.
    • Unauthorised user가 slug로 draft에 직접 접근 시 방어
    • Manage DB pool(?)
      • Check if the connection is properly released.
    • Add loading spinner
    • CI/CD and deployment
      • deploy.yml 작성 중...
      • 인스턴스 새로 만들기
      • 새 인스턴스에 CodeDeploy 적용하기
      • 새 인스턴스에 Nginx 설정하기
      • 서버에서 자동으로 build 하기
      • pm2 실행하기
      • 새 인스턴스에 도메인 연결하기
    • 글을 쓰고 나면 Footer 목록에 구두점이 생긴다.
    • 글 저장할 때 화면이 아래로 꺼지는 현상이 있는데 loading spinner 코드 수정하자.

    NOT TO DO (for now)

    • Indentation... 이 문제는 나중에 해결하자. Tailwind 자체 결함.
      • Second-level indentation
    • 추가 메뉴: Profile, Chronology, 누적 방문자 수

Top categories

Loading Svelte Themes