Skip to content

Scrinix: A web app for efficient internal exam moderation with role-based access for coordinators and faculty, built with Next.js, Node.js, and PostgreSQL.

Notifications You must be signed in to change notification settings

fbn776/Scrinix-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scrinix-backend

Welcome to the backend of Scrinix, a platform designed to streamline the moderation of internal exams. This documentation outlines the key aspects, features, and structure of the backend system, built to provide a secure and efficient foundation for the application.

Note: The application is not completed. Feel free to contribute or fork this project.

Frontend Repository

The frontend repository can be found here.

Tech Stack

  • Runtime: Node.js
  • Framework: Express.js
  • Database: PostgreSQL
  • File Uploads: Multer (stored in postgres)

Project Structure

└── Scrinix-BE/
    ├── README.md
    ├── package.json
    ├── tsconfig.json
    ├── .swcrc
    ├── docs/
    │   ├── README.md
    │   ├── DB.md
    │   ├── File structure.md
    │   ├── Private.md
    │   ├── TODO.md
    │   └── assets/
    ├── init/
    │   ├── basic_insertions.sql
    │   ├── cleanup.sql
    │   └── schema.sql
    └── src/
        ├── index.ts
        ├── config/
        │   └── db.ts
        ├── controllers/
        │   └── admin/
        │       └── root.ts
        ├── lib/
        │   ├── ErrorHandling.ts
        │   ├── HTTP_status.ts
        │   ├── Logger.ts
        │   ├── hashPassword.ts
        │   └── utils.ts
        ├── models/
        │   ├── type.d.ts
        │   ├── college/
        │   │   └── model.ts
        │   └── faculty/
        │       └── model.ts
        └── routes/
            ├── swagger.ts
            ├── admin/
            │   ├── clgAdmin.ts
            │   ├── index.ts
            │   └── root.ts
            ├── coordinator/
            │   └── index.ts
            ├── course/
            │   └── index.ts
            ├── exams/
            │   └── index.ts
            └── staff/
                └── index.ts

Usage

Development

  1. Clone the repository
  2. Install the dependencies.
    npm install
    # or
    yarn install
    # or
    pnpm install
  3. Create a .env file and populate it with the following environment variables.
    PORT=3000
    DB_USER=
    DB_HOST=
    DB_NAME=
    DB_PASSWORD=
  4. Start the development server.
    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
  5. The server would be running at http://localhost:3000 locally.

Production

  1. Clone the repository and install the dependencies and follow the above mentioned steps upto step 3.
  2. Build the project.
    npm run build
    # or
    yarn build
    # or
    pnpm build
  3. Start the production server.
    npm start
    # or
    yarn start
    # or
    pnpm start

Database

The project uses postgres SQL as the database. For creating the scheme run the schema file in the database. For cleaning up the scheme run the cleanup file in the database.

API Documentation

The API documentation is available at http://localhost:5000/api-docs when the server is running.

About

Scrinix: A web app for efficient internal exam moderation with role-based access for coordinators and faculty, built with Next.js, Node.js, and PostgreSQL.

Topics

Resources

Stars

Watchers

Forks