Project này bạn làm cực kỳ tuyệt vời và công phu nè, nên mình nghĩ mình sẽ góp ý vài điểm chính để làm nó tuyệt vời hơn nhé.
Cả front-end và backend bạn nên config thêm eslint vs prettier nè.
Front end:
Mình thấy bạn dùng một file App.css để chứa toàn bộ css, như vậy là không ổn nè, vì React theo tư tưởng là component nên component thì sẽ đi vs css đó. Bạn có thể sử dụng styled component, css module để quản lý css tốt hơn nhé.
Cái này option một tí, được bạn dùng redux toolkit để giúp code redux của bạn gọn hơn và optimize hơn nè ( trong đó có dùng như selectors, immer)
Bạn nên validate các ô input phía front end ở login
Hình như redux extension trên phía production chưa tắt ^^
Mình thấy cái nộp image như work lắm nhỉ
Backend:
Mấy cái statusCode bạn nên dùng httpStatus nha.
Vẫn còn hard code nhiều quá ví dụ 5 * 1024 * 1024
Bạn tạo ra một bảng Token thế kia để send email confirm, mình không biết khi nào bạn xoá nó đi nè, cron job à, dùng redis thì ổn hơn nè.
Được thì bạn config babel dùng cho nó xịn xò hơn nè.
5 * 1024 * 1024
Đó là một vài ý chính mình góp ý.