This TypeScript application harnesses the power of Express.js framework to create a robust CRUD (Create, Read, Update, Delete) API tailored for managing a collection of chats. MongoDB serves as the backend database, storing person objects, each characterized by an id and chat data. The API provides endpoints for seamless CRUD operations on this collection. Additionally, it incorporates user registration functionality with JWT (JSON Web Token) for secure authentication, session management, and implementation of user roles and permissions. To showcase the API, Vue.js version 3 (Vue 3) was employed.
navigate to /server to see setup instructions
navigate to /client to see setup instructions
express_app/
├── client/
│ ├── src/
│ │ ├── App.vue
│ │ ├── index.ts
│ │ ├── main.ts
│ │ ├── router.ts
│ │ ├── style.css
│ │ ├── assets/
│ │ │ └── (static assets)
│ │ └── components/
│ │ ├── Header.vue
│ │ ├── GetStarted.vue
│ │ ├── Login.vue
│ │ └── Messages.vue
└── server/
├── src/
│ ├── authenticateToken.ts
│ ├── generateSecretKey.ts
│ ├── index.ts
│ ├── controller/
│ │ └── controller.ts
│ ├── router/
│ │ └── routes.ts
│ └── schema/
│ ├── ChatSchema.ts
│ └── UserSchema.ts