Skip to content

Commit a56352a

Browse files
Update
1 parent 835e763 commit a56352a

File tree

4 files changed

+78
-6
lines changed

4 files changed

+78
-6
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
firebase-auth
1+
firebase-auth/*.json
22
mongodb-data
33
postgres-data
44
.env

README.md

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,75 @@
1-
[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-24ddc0f5d75046c5622901739e7c5dd533143b0c8e959d652212380cedb1ea36.svg)](https://classroom.github.com/a/6BOvYMwN)
2-
# AssignmentTemplate
1+
# Testing
2+
3+
We recommend using our production environment for testing. You can find the production environment at [https://peerprep.sivarn.com](https://peerprep.sivarn.com).
4+
5+
# Testing Locally
6+
7+
## DISCLAIMER: Our executor service can only run on x86_64 architecture. If you are using a different architecture, you will not be able to run the executor locally. However, you can still test the rest of the application.
8+
9+
1. Install Docker for your operating system. You can find the installation instructions [here](https://docs.docker.com/get-docker/).
10+
2. Clone the repository.
11+
3. In the frontend folder, add .env file with the following content:
12+
13+
```
14+
NEXT_PUBLIC_FIREBASE_API_KEY=AIzaSyAMiTV5yv2D-gvCy2TNEFREZIMUJ3SnYD8
15+
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=peerprep-test.firebaseapp.com
16+
NEXT_PUBLIC_FIREBASE_PROJECT_ID=peerprep-test
17+
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=peerprep-test.appspot.com
18+
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=655590321803
19+
NEXT_PUBLIC_FIREBASE_APP_ID=1:655590321803:web:293756d86132bdafddae8e
20+
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=G-XXSP3K70CN
21+
NEXT_PUBLIC_PEERPREP_INNKEEPER_SOCKET_URL=localhost
22+
```
23+
24+
Note that usually these values are kept secret, but since this is a test environment, we are not concerned about security.
25+
26+
4. In the root folder, add .env file with the following content:
27+
28+
```
29+
POSTGRES_USER=peerprep
30+
POSTGRES_PASSWORD=somepassword
31+
GOOGLE_APPLICATION_CREDENTIALS=/firebase-auth/service-account.json
32+
MONGODB_URL=mongodb://peerprep-mongo:27017/questions
33+
BUCKET_NAME=peerprep-test.appspot.com
34+
USERS_SERVICE_URL=http://peerprep-users-service:6969
35+
POSTGRES_URL=postgres://peerprep:somepassword@peerprep-postgres/peerprep
36+
INITIALIZATION_VECTOR=vector
37+
ENCRYPTION_KEY=key
38+
```
39+
40+
5. In the firebase-auth folder, add service-account.json (file name has to be exact match) file with the following content:
41+
42+
```
43+
{
44+
"type": "service_account",
45+
"project_id": "peerprep-test",
46+
"private_key_id": "3a7f69677fabe63fb16358b58a9bab77a79b6e22",
47+
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQDI/7aXOEK+k/iZ\nGfo4K2WKeV2u8QSuE9RfN9oVff5fgTUHdYNK9KXF+JRAfxqf2ZJkh3hdS4ipvSxp\n1HGZQ+l9Qu4XTpQRABv+9zhhI0NQr/xk/zZzR92lVlDP/UeXqkthnhd4dKo+MId1\nl2JAeOWQaCEyDtGi0pIFnwW9k4K8Myo/hjWwE+wV4SdgY2kjBUprYsv9iAllUELn\nsr8hxXmko6YMtnF0H4GI1cD/z8GLwRsD6Y/ZUBRK8oDQFVdKHe2U5DvPqCfZ1bxb\nDfX+Jx/7+pKeWbAqFJB9s6YSJ1imQzQYuYLip2fLE2BSpUXMvlI8CxTuoxAuXHSM\nEMbMbVMnAgMBAAECggEAPuR4oy+Y/t35IxrURyAZGS+ppzRGNRwCTzsAM8plPkgF\nKkzUZK9RcbU62kWLNKpVGryi5npcjFQjoge19fGgjS/UpRlSzlD88ZY0n3xzszsl\n3ApZZM//ZB0ykyoa7TN9e9GGYYwLuwLfV+Wi+i56EmnqvSmS4gJGa5jbKHsQJMfF\nGArs6w/M0AJKDBvT0+KWHUypPYGQao1/1tBWZmXGGfOIeWJ4V+FsWHzISV6bDQ5d\njcPDJwwWD8HVLd8Y8UuJvU2WP4ydpQ6iAVW+3Cy/kEHcaaMUN3IrhisSzd/DURR0\nppVgOJUmrfXTFHHI6OlRlDJ0D7h2GNGD2SSN96JHdQKBgQD57A9o1o5XZRIkEufa\nsY1+dihZpA8L1I3eqhkEH/FDhViO6iQEOIMK8MvSvzIsmKCLc7Wyy5Ai5WAHAAIj\nkKI2/ErKjv7GA5k+B+AhFL+O6acpFwiDIvGIhq4CKFZ/70AMWMXt37nqMSCsiRw4\nNXCXXeSiujNBQvL5a/jc+LbY1QKBgQDN4xJePjOIRYifPVrmQ7Ju75ttTDYCZsiQ\n8P29/nzDF+BRJGuXxGZMnKGZiP3zrm379xP5e1etL940IbQT1GR2MAsIQwEKlC/i\nTV1a8g+NdrQA/Sb4Ru5DI/AMwNr/8OvmtvgSjK0SGgBFkGLRH4F7WyNXNNLOtclJ\nQbUXAor6CwJ/Q1xcyuUJeITFXvO5ijhQ6sTuGzsc0xN3KYyvMW1qmchXFi4Fhx20\nND6ysRrXay24F94YGxjCwKUSPNDDwtI45pkZj377LGPL6ew1fLUa7GoNpAWRRccl\nUqb6P5qftdvGZ42Fy5eBhJ25MMfD02KT9jhYZ4PITM6+rntrmCNxJQKBgEsnr4XN\naNw+nZ+bMvpJDfJm7rKYFkMMJ/yYq9dV9U72AUE9bTUKUVl395lnI2R3cNiAGb+B\nIcErbw5Smzx91Go8IVrTsqac71nJaeGP6NN32D9gKYCJy+GgVbkiEQ9Kb6JZefaz\neV3ZNe4uxZOWz5oq65yiwK0KOL7QCH2sxPR/AoGBAN+QhUp2XEZjLwlx8pSjwRGn\nUJfhU3eeqhGMF+DOf7BaYUYTEvQVA45gGQQJdiN+ncnrtO35/vLZ43jvOKeu+ens\nc+Tq3i1Sga73ifMazmJShml/NQGch8J0SFA88VnmYXsj8y27gmOJuLT9h+DIlK9L\nTk7APwYR9tLFOY1wVT71\n-----END PRIVATE KEY-----\n",
48+
"client_email": "[email protected]",
49+
"client_id": "113117889579042558853",
50+
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
51+
"token_uri": "https://oauth2.googleapis.com/token",
52+
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
53+
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-737ke%40peerprep-test.iam.gserviceaccount.com",
54+
"universe_domain": "googleapis.com"
55+
}
56+
```
57+
58+
Note that usually these values are kept secret, but since this is a test environment, we are not concerned about security.
59+
60+
6. In the root folder, run `docker compose -f docker-compose.yml up -d`.
61+
62+
7. Application should be running at [http://localhost](http://localhost).
63+
64+
# Giving yourself admin privileges
65+
66+
1. Login to the application in your browser using Google/Github.
67+
2. Run the following commands in your terminal:
68+
69+
```
70+
docker exec -it peerprep-postgres bash
71+
psql -U peerprep
72+
UPDATE profiles SET role='admin';
73+
```
74+
75+
This will give every user admin privileges. Note that this is only for testing purposes.

firebase-auth/.keep

Whitespace-only changes.

frontend/src/app/api/index.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ export const FetchAuth = {
4444
},
4545
};
4646

47-
// TODO: change to env variable
48-
export const API_URL = "https://peerprep.sivarn.com/api/v1";
47+
export const API_URL = "/api/v1";
4948

5049
export const fetchQuestionDescriptionUrl = async (qnId: string) => {
5150
return await FetchAuth.fetch(`${API_URL}/questions/${qnId}`).then((res) =>
@@ -174,7 +173,7 @@ export async function updateProfileUrl(
174173
body,
175174
}).then((res) => res.json());
176175
}
177-
const executorURL = "https://peerprep.sivarn.com/api/v1/execute";
176+
const executorURL = "/api/v1/execute";
178177
export const executeCode = async (code: string, lang: string) => {
179178
const res = await fetch(`${executorURL}/${lang}`, {
180179
method: "POST",

0 commit comments

Comments
 (0)