Skip to content

Repository files navigation

interView

interView is a video-based interview practice platform. Users can upload responses to common interview questions, review other responses, and exchange structured feedback.

interView home page

What it does

  • Creates user accounts and authenticates sessions with JSON Web Tokens.
  • Uploads video responses with an interview question, industry, and experience level.
  • Organizes responses around common interview questions.
  • Streams uploaded videos from Amazon S3.
  • Collects written feedback about what went well and what could be improved.
  • Scores responses from 1–5 for professionalism, confidence, content, and voice.

Technology

Area Tools
Frontend React 17, Redux, React Router, Axios, Material UI
Backend Node.js, Express, Passport, JSON Web Tokens, Multer
Data MongoDB, Mongoose
File storage Amazon S3
Development Create React App, Nodemon, Concurrently

Application structure

interView/
├── app.js                 Express application entry point
├── config/                Database and Passport configuration
├── models/                User, video, rubric, and feedback models
├── routes/api/            REST API routes
├── validations/           Server-side request validation
├── frontend/              React and Redux client
└── s3.js                  S3 upload and streaming helpers

The React client communicates with the Express API. MongoDB stores users, video metadata, rubrics, and written feedback; S3 stores the uploaded video files.

Run locally

Prerequisites

  • Node.js and npm
  • A MongoDB database
  • An Amazon S3 bucket and credentials with access to that bucket

1. Install dependencies

npm install
npm run frontend-install

2. Add local configuration

Create config/keys_dev.js:

require("dotenv").config();

module.exports = {
  mongoURI: process.env.MONGO_URI,
  secretOrKey: process.env.SECRET_OR_KEY,
};

Create a .env file in the repository root:

MONGO_URI=your_mongodb_connection_string
SECRET_OR_KEY=your_jwt_secret
AWS_BUCKET_NAME=your_s3_bucket
AWS_BUCKET_REGION=your_s3_region
AWS_ACCESS_KEY=your_aws_access_key
AWS_SECRET_KEY=your_aws_secret_key

Both files are ignored by Git. Do not commit real credentials.

3. Start the application

npm run dev

The Express API runs on http://localhost:5500. The React development server starts separately and proxies API requests to Express.

API overview

Resource Purpose
/api/users Registration, login, and the authenticated user
/api/videos Video metadata, uploads, listings, and S3 streaming
/api/feedbacks Written feedback creation, editing, and deletion
/api/rubrics Rubric scoring, editing, listing, and deletion

Contributors

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages