One Day Intern is an open-source project that aims in making fairer and more practical assessments.
We aim to provide means for:
- Assessors to create an assessment environment that can emulate a day-to-day activity of a specific job position.
- Assessors to identify, showcase, and differentiate which candidates have better practical and soft-skills abilities for their job/job position.
- Assessee to gauge their day-to-day future work experience and provide a more natural and sincere performance than the ones performed in an isolated assessment environment.
- Some companies still use multiple external mediums for their assessment process. This situation becomes a hassle for HR and assessor personnels to manage, monitor, and guide the progress of their assesses throughout the assessment.
- Some assessments are still performed separately and isolated from each other. These kinds of assessments are still incapable of mimicking the real-life work experience.
- Server-side setup
- Client-side setup
- 0.0.1 - Hello World Update
- 0.1.0 - The first pieces of the puzzle are here! 🥳
- 0.2.0 - Added tools, attempts, and grading 🤓
To start the project locally, please follow the steps below.
The server-side application runs on top of Django and Django Rest Framework. Hence, you will need to have python to be installed on your machine. Please follow these installation steps to set up python on your machine.
To ease the development process and to avoid hassle in production, you may also want to install python environment libraries. We use python pipenv for this project.
Note that this project requires a Postgresql database to be installed in your local machine.
If you do not have a local postgres instance in your machine, please follow these installation steps.
If you do not have a local postgres database in your machine, please follow these steps.
Once your local machine is set, you can start by following the steps below.
-
First, clone the server-side repository.
git clone https://github.com/one-day-intern/one-day-intern-backend.git
-
After a successful repo-clone, you must install the dependencies to your local machine by using the following commands.
python -m pipenv shell cd one-day-intern-backend python -r requirements.txt
-
Now, you need to set up the
DATABASE_URL
environment variable required to run the project. TheDATABASE_URL
has the following formatpostgres://{username}:{password}@{host}:{port}/{name}
.Your
DATABASE_URL
should look something like this.postgres://postgres:postgres@localhost:5432/my_database
You may do this by adding environment variables directly through the
CLI (Command Line Interface)
or through a.env
file.To add the environment variables through the windows CMD, type the following command in your CLI.
export DATABASE_URL = <your_database_url>
For example,
export DATABASE_URL = postgres://postgres:postgres@localhost:5432/my_database
To add the environment variables through the mac or linux CLI, type the following command in your CLI.
set DATABASE_URL = <your_database_url>
For example,
set DATABASE_URL = postgres://postgres:postgres@localhost:5432/my_database
To add the environment variable through the
.env
file, you may create a.env
file in the root project directory and add the following line modified with your database credentials.DATABASE_URL = <your_database_url>
For example,
DATABASE_URL = postgres://postgres:postgres@localhost:5432/my_database
-
If this is your first time running the application, perform the database migration as follows.
python manage.py migrate
-
Finally, you can run the development server.
python manage.py runserver
Now, you can open
http://localhost:8000
to see the application in the browser.
The application also comes with pre-configured test cases. To run the test locally, you can run python manage.py test
The client-side codebase consists of two separate repositories: odi-assessee-fe
and odi-assessor-fe
, which handles the assessee and assessor dashboards, respectively.
-
First, clone the repository you wish to contribute:
The following is used to clone the assessee frontend:
git clone https://github.com/one-day-intern/odi-assessee-fe.git
The following is used to clone the assessor frontend:
git clone https://github.com/one-day-intern/odi-assessor-fe.git
-
Note that this project is configured using
npm
. Ifnpm
is not configured on your machine, you can download node.js from the following website, which comes bundled withnpm
.The steps for
yarn
users will be further specified below. -
After configuring
npm
in your machine, you can initialize the project by installing the dependencies as follows:npm i
However, for those using
yarn
, you can initialize the project by installing the dependencies as follows:yarn install
-
You also need to configure the
BACKEND_URL
for your Next.js application, which will most likely behttp://localhost:XXXX
(where you host our cloned backend).To configure the environment variables, you need to create a
.env.local
file which contains the following value:NEXT_PUBLIC_BACKEND_URL = <backend_url>
To access the following the backend URL on your browser-side code, you can use
process.env.NEXT_PUBLIC_BACKEND_URL
.For those who prefer to add the variable to the next.config.js, you are able to add the following:
module.exports = { env: { ……, NEXT_PUBLIC_BACKEND_URL: <backend_url>, }, }
-
Both assessee and assessor applications are initialized using Next.js. The development server in your local machine can be started as follows:
npm run dev
or
yarn dev
-
You can open
http://localhost:3000/
to see the application in the browser.(Note that if you were to run both applications simultaneously, one application may be run on
http://localhost:3001/
)
Both applications also come pre-configured with cypress as the testing suite. To test the app locally you can run
npx cypress open
to test the app on your browser of choice.
Finish configuration of server-side and client-side repositories.
- You can now either register and login as a
Company
,Assessor
, or anAssessee
straight from the website
- Assessors can invite other employees to become
Assessors
by sending them a one time code - Assessors will receive an email containing a one time code to register
- Companies and Assessors can create
Assignments
and specify what type of file that needs be uploaded
- Assessors can create new Assessment Events
- Assessors can assign other Assessors to an Assessment Event
- Assessors can view Assessment Events that they're apart of
- Assessors can see the Assessees that they're currently assessing
- Assessors can create video conferences
- Assessors and Assessees can join video conferences
- Assessees can view their active assessment events
- Assessees can access their assessment event desktops
- Assessees can receive notifications from their desktop when they have a new assessment task
- You can now either register and login as a
Company
,Assessor
, or anAssessee
using Google Login
- Assessors can view the progress of the Assessees they are in charge of
- Assessors can track the scores of every Assessee they are in charge of
- Companies and Assessors can create a fully customizable
Interactive Quiz
, including the number of questions, the type of question, points of each question and the answer key - Companies and Assessors can create
Response Tests
and specify the subject and prompt of the test
- Companies and Assessors can create a fully customizable
Test Flow
, by selecting the Assessment Tools used and the order and when they are published - Test Flows are assigned to Assessment Events
- Assessees can now attempt their assigned assessments
- They can upload and reupload files for
Assignments
- They can submit answers for
Interactive Quizzes
- They can send a response back for
Response Tests
- They can upload and reupload files for
- Each assessment is set with a deadline, so they can only be done/accesses based on the deadline constraint
- Assessors can now grade their Assessees attempts
- They can download files for
Assignments
and set their grade - They can manually grade each answer for each question of an
Interactive Quizzes
- They can manually grade
Response Tests
- They can download files for
- Each pair of Assessors and Assessees are automatically assigned a video conference room
- The Assessor acts as the host of the video conference room, which gives them full control of the room
- Assessees can receive scheduled announcements for video conferences