A platform for checking test tasks in 1C for a customer from BIA Technologies. In this repository, a beta version of the web application is being developed for subsequent operation in the release instance. Built with Node.js, Express, and MongoDB, the system also includes several security features such as authentication, rate limiting, and input validation.
- User Registration and Login: Users can register and log in with secure, rate-limited attempts to prevent brute-force attacks.
- Session Management: Secure session handling with HTTP-only cookies using
express-session. - Security Middleware: Protection with
helmet,csurf, and content security policies.
- Profile Management: Users can update profile data, including avatar uploads.
- Task Management: View task information, submit solutions, and add comments.
- Result Viewing: Check task results and download reports.
- Candidate and Task Management: View and assign tasks to candidates, edit tasks, and manage solutions.
- Evaluation and Feedback: Evaluate submissions, provide comments, and generate performance reports.
- Statistics and Insights: Access key statistics and insights for users and tasks.
- Node.js: Backend runtime environment.
- Express.js: Web framework for handling HTTP requests.
- MongoDB: NoSQL database for storing user and task data.
- Mongoose: ODM for MongoDB, used for modeling and interacting with the database.
- Bcrypt: Secure password hashing for user authentication.
- Multer: Middleware for handling file uploads like avatars.
- Helmet: Secures HTTP headers.
- Csurf: Provides CSRF protection.
- Rate-Limit: Protects against brute-force attacks by limiting login attempts.
- Express-Session: Secure session management.
- Dotenv: Manages environment variables.
- Cookie-Parser: Parses cookies, mainly for CSRF protection.
- Node.js installed
- MongoDB installed and running
- A
.envfile containing:DB_URL: MongoDB connection stringSESSION_SECRET: Secret key for session management
- Clone the repository:
git clone <repository-url>
cd <repository-folder>- Install dependencies:
npm install- Set up environment variables: Create a .env file in the root directory with the following
DB_URL=your_mongodb_url
SESSION_SECRET=your_secret_key- Start the server
npm start