This is a full-stack application consisting of a .NET 8 backend API, a Next.js frontend, and a PostgreSQL database. The application allows users to prepare for interviews by answering questions using the microphone + camera. The recordings with the answers will be stored as video files so they can be reviewed later. The questions must be submitted by the users.
This was created as a personal project for learning and experimentation, with the primary goal of finishing a first version as quickly as possible (so I can start using it and prepare for job interviews). The initial version was completed in just one month. As such, the code quality and structure may not reflect best practices or production-ready standards. Feedback and suggestions for improvement are welcome!
- Docker installed on your machine.
- Ensure that a
.env
file exists in the root directory.
touch .env
- Update the content of the
.env
file:
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
POSTGRES_DB=br1interviewpreparation
# For local development
ALLOWED_ORIGINS=http://localhost:3000
API_URL=http://localhost:5000/api
NEXT_PUBLIC_API_URL=http://localhost:5000/api
# For local network (ex: to use the app from my phone)
#ALLOWED_ORIGINS=http://WIFI_IP:3000
#API_URL=http://WIFI_IP:5000/api
#NEXT_PUBLIC_API_URL=http://WIFI_IP:5000/api
- Important: Ensure that the
.env
file is saved in the same directory as thedocker-compose.yml
file.
- Build and start the application using Docker Compose:
docker-compose up --build
- This command will build the Docker images and start all the services defined in the
docker-compose.yml
file. - The first build may take several minutes.
Once the application is running, you can access it via the following URLs:
- Frontend Application:
http://localhost:3000
Backend API Swagger UI:
http://localhost:5000/swagger
To stop the application and remove the containers, run:
docker-compose down