This is an Event Management System that allows users to register and log in securely. Each user can register for one event only once. The system features dynamic loading of events from the database.
-
Backend:
- Node.js: JavaScript runtime for server-side programming.
- Express: Web application framework for Node.js.
- MongoDB: NoSQL database for storing user accounts and events.
- Mongoose: ODM library for MongoDB.
- Cors: Middleware for enabling Cross-Origin Resource Sharing.
- Helmet: Security middleware for setting HTTP headers.
- Rate Limit: Middleware for rate limiting requests.
- Body-Parser: Middleware for parsing incoming request bodies.
- Bcrypt: Library for hashing passwords.
- dotenv: Module for loading environment variables from a
.env
file. - Node Limits: Module for managing file uploads and request limits.
- JWT (jsonwebtoken): Library for handling authentication with JSON Web Tokens.
- Nodemailer is a library for sending emails in Node.js applications.
- Socket.IO: Library for real-time and live chat functionality.
-
Frontend:
- React: JavaScript library for building user interfaces.
- Tailwind CSS: Utility-first CSS framework for styling components.
-
DevOps:
- Docker: Containerization platform for creating and managing containers.
- Kubernetes: Container orchestration platform for automating deployment, scaling, and operations.
- Nginx: Web server and reverse proxy for handling requests and providing additional security.
-
Test:
- Jest: A testing framework used for writing and executing tests.
- @testing-library/react: A library for testing React components, which allows rendering components.
- @testing-library/jest-dom: An extension for Jest that adds useful matchers for testing DOM elements.
- supertest: A library that allows making HTTP requests in tests and verifying responses.
Start Backend :
nodemon server.js
node server.js
Start Frontend:
npm start
Start All:
npm run all-docker
npm run all-k8s
npm run all-nodemon
npm run all-node
Docker/Kubernetes
npm run docker
npm run k8s
Tests
all-test
Workflow | Status |
---|---|
Tests | |
Deployment |
└── 📁backend
└── 📁__mocks__
└── fileMock.js
└── 📁kubernetes
└── deployment.yaml
└── secret.yaml
└── service.yaml
└── 📁middleware
└── auth.js
└── resetAccountLimiter.js
└── 📁models
└── account.js
└── event.js
└── 📁routes
└── accountRoutes.js
└── adminRoutes.js
└── authRoutes.js
└── chatRoutes.js
└── eventRoutes.js
└── healthCheckRoutes.js
└── 📁services
└── emailService.js
└── 📁sql
└── messages.sql
└── 📁tests
└── event.test.js
└── .babelrc
└── .dockerignore
└── .env
└── .gitignore
└── .prettierignore
└── autocannonApiTest.md
└── default.conf
└── docker-compose.yml
└── Dockerfile
└── Dockerfile.nginx
└── eslint.config.mjs
└── jest.config.js
└── nginx.conf
└── package-lock.json
└── package.json
└── server.js
└── ZAPToFix.md
└── 📁frontend
└── 📁__mocks__
└── styleMock.js
└── 📁public
└── index.html
└── manifest.json
└── robots.txt
└── 📁src
└── 📁Components
└── 📁assets
└── hoverPhoto.gif
└── Konferencija.jpg
└── Card.js
└── Header.js
└── PrivateRoute.js
└── 📁context
└── AuthContext.js
└── 📁routes
└── AdminAddEvent.js
└── ChangePassword.js
└── Chat.js
└── ForgotPassword.js
└── Login.js
└── Registration.js
└── Unauthorized.js
└── App.js
└── index.css
└── index.js
└── 📁tests
└── Card.test.js
└── .babelrc
└── .gitignore
└── Dockerfile.frontend
└── nginx.conf
└── package-lock.json
└── package.json
└── README.md
└── tailwind.config.js
└── 📁.github
└── 📁workflows
└── deploy.yml
└── run-tests.yml
└── 📁node_modules
└── .env
└── docker-compose.yml
└── package-lock.json
└── package.json
└── README.md