• Applied DI (Dependency Injection) using container in typedi
module with plain JavaScript.
▪︎ All classes are manipulated in one single file called models/container/container.js
.
• Clean code.
• Applied MVC pattern.
▪︎ Each layer does not affect to other layers and helps to loosen the bound between the different components.
• Board:
▪︎ CRUD, searching by title, board screen page, comment, comment reply.
• Web chat.
▪︎ socket.io
• JWT & session based
▪︎ Sign up, sign in, sign out.
• RESTful principles.
• Admin account
• Grop chat(invitation)
• Preventing duplicated login
• In order to run this project, you need to rename .env.forGitHub
file to .env
and initialize those values.
• docker-compose
: Consists of Node container and MySQL container.
• Express, socket.io, bcrypt, dotenv, cookie-parser, ejs, jsonwebtoken, mongoose, MySQL, python-shell, ajax.
• sqlite.
• Working on login with Kakao.
• Jest CRUD API TDD.
• Published.
• Dockerized.
• Board - comment edit available now.
• Board - Comment reply available now.
• Board - Comment deletion available now.
• Board - Comment viewable, not support comment reply yet.
• Board - Comment post available now.
• Board - Working on comment feature, made a comment DB.
• Board - Working on comment feature.
• Board - Working on comment feature.
• Renamed some variables.
• Code organizing.
• Removed junk code and renamed some variables.
• Code organizing.
• Removed junk code and renamed some variables.
• Board - Search by title available now.
• Optimizing.
• Modified UI.
• Board - Working on article search by title.
• Board - Auto complete available now.
• Board - Fixed time difference issue(time zone).
• Board - Now a new article sees first on the board(descending order by article number).
• Board - Working on article search by title.
• Board - Edit feature available now.
• Board - Fixing time difference issue.
• Error handling.
• Deleting available now.
• Page feature in board screen available now.
• Posting available now.
• Working on page screen.
• Connected MySQL server with NodeJS.
• Working on adding a board.
• Working on connecting MySQL with the server.
• Working on adding a board.
• Published.
• Web chat - online user list available.
• Sign in bug fixed - error handling.
• Pressing "Enter key" to submit available now.
• Web chat feature.
• Separated routers and controllers.
• Sign out feature.
• Working on separating controllers and routers.
• Sign up feature.
• Sign in feature.
• Connected mongoDB using mongoose module.
• Working on sign up feature
• Applying router.
• Added controllers
and models
directory.
• The entire NodeJS server is not applied routers.
• I have made a routes
directory to organize my entire server structure.
Now I can distinguish purposes of controller
, model
, view
.
• Separating their purpose can layer server structure which means:
View
is used to interace only clients.
Controller
is used to interact view and model.
Model
is used to interacrt database.
• This implies that making more clean code and separating exact purpose of their code.
I have made each of router files based on categories in routes
directory.
• I wanted to make a clean code that everyone can see and understand easily.
• I was looking for how to, and I have noticed that I need to apply MVC pattern to my server.
• I have decided to apply it to my entire NodeJS server.