This Content Management System (CMS) is a web application designed to manage and organize content efficiently. Users can sign up, create posts, manage post categories, and admins have access to a real-time dashboard to monitor events within the application.
- PostgreSQL: A powerful open-source relational database management system.
- TypeORM: An Object-Relational Mapping (ORM) library for TypeScript and JavaScript.
- WebSockets: A communication protocol that enables real-time bidirectional communication between clients and servers.
- REST Protocol: Traditional Representational State Transfer for standard HTTP-based communication.
- NestJS: A progressive Node.js framework for building efficient, scalable server-side applications.
-
User Authentication:
- Users can sign up and log in securely to access CMS features.
-
Post Management:
- Create, update, and delete posts.
- Organize posts using categories.
-
Category Management:
- Create, update, and delete post categories.
-
Admin Dashboard:
- Real-time dashboard for admins to monitor user activities.
- Uses WebSockets to provide live updates.
The project is implemented using NodeJS, NestJs, TypeScript, and TypeORM for database interactions. The chosen database is PostGresql.
Ensure the following packages are installed locally:
- Postgres
- Node (LTS Version)
- NPM
- NestJS CLI:
npm install @nestcli -g
-
Clone the repo
git clone https://github.com/ChuloWay/HackCity-Project
-
Create an env file:
- Duplicate the
.env.example
file in the project root. - Rename the duplicated file to
.env
. - Open the
.env
file and set your variables as shown in the example file.
cp .env.example .env
Ensure to fill in the necessary values in the
.env
file for a smooth configuration. - Duplicate the
-
Run migration:
npm run apply:migration
-
Start your server:
npm run start:dev
Explore the API documentation at - API Postman Documentations.
Special thanks to:
- NestJS
- TypeScript
- PostGres
- TypeORM
- JSON Web Tokens
- Websocket
- PostMan
Thank you for exploring our Content Management System! We hope this tool enhances your content management experience. Feel free to provide feedback, report issues, or contribute to the project. Happy managing!