Welcome to TestHub, an innovative online platform tailored to streamline the process of test creation, management, and engagement within educational settings. Designed with educators in mind, TestHub empowers teachers to craft two distinct types of assessments: Multiple-choice tests and Python tests. Dive into our system structured around courses, each housing a diverse array of topics. Delve deeper into specific subjects where various tests await assignment. Students can seamlessly tackle these assessments and promptly receive feedback on their performance. Join us on TestHub and revolutionize the way you approach testing in education!
- Test Creation: Teachers can create multiple-choice tests and Python tests.
- Course Management: Courses are organized into topics, allowing for structured learning.
- Instant Results: Students receive immediate feedback on their test attempts.
- User Profiles: Each user has a personalized profile page displaying personal information and statistics related to their account.
- Backend: Django Rest Framework
- Frontend: Angular
- Database: PostgreSQL
- Frontend Styling: Custom HTML and CSS
- Make sure that you have Node.js, Python installed and configured.
- Clone the repository.
-
Setting Up The Frontend:
- Use cd client to navigate to the Frontend Part of the application. Run npm install to download all the needed dependencies.
- When the process is done Run ng serve to start the Frontend
-
Setting up the Backend:
- Use cd server to navigate to the Backend Part of the application. Run pip install -r requirements.txt to download all the needed dependencies.
- Choose whether to use Postgre SQL or SQL Lite. If you choose Postgre SQL make sure that you have created the database before that.
- Run python manage.py migrate to create all of the tables in the Database.
- Run python manage.py createsuperuser and setup an account for managing the system.
- Run python manage.py runserver to start the Backend.
- Using the navigation go to Django Admin and Authenticate with the created user. After that go to Authentication and Authorization section and click on Groups. On the right side click on add group, name it Teachers and select the permissions that you want to give to every Teacher. After that is finished click on Save. Again in the Authentication and Authorization section choose users, (select your user for example) and in the groups section give the Teachers role to the user. Don't forget to save.
-
Starting the Application:
- In the console where you started the Frontend/Client, click on the given link to access the Web Application or go to: http://localhost:4200/
- To access the Backend either click the link in the console where you've started the Django REST, or go to: http://localhost:8000/
- Client: Contains Angular frontend files.
- Server: Contains Django backend files.
- Project-images: Screenshots from the Web Application.
TestHub starting url: http://localhost:8000/ 1. admin/ - Django Admin Site 2. / - Django Server Home Page 3. auth/ - Authentication Part of the REST API - register/ - Register Endpoint - login/ - Login Endpoint - logout/ - Logout Endpoint - myProfile/ - My Profile Endpoint - editProfile/ - Edit Profile Endpoint - deleteProfile/ - Delete Profile Endpoint 4. testHub/ - Main part of the TestHub REST API - coursesTopicsTests/ - Endpoint for all of the TestHub Exam data - createMultipleChoiceTest/ - Create MCQ Endpoint - createPythonTest/ - Create Python Test Endpoint - multipleChoiceTest/{examName}/ - Submit MCQ Test - pythonTest/{testName}/ - Submit Python Test - submissions/ - TestHub Submissions * multipleChoiceTest/{submissionId}/ - Get MCQ Test submission * multipleChoiceTest/{submissionId}/{questionId}/ - Get MCQ single question * python/ - Get Python Tests submissions * multipleChoice/ - Get MCQ submissions
-
Course&Topic Creation:
- The Administrator can create courses and topics through the Django Admin Site.
-
Test Creation:
- Teachers can log in and create new Python and MultipleChoice Tests under the desired course and topic.
-
Test Participation:
- Students can log in and attempt tests available under their enrolled courses and topics.
-
Profile Page:
- Users can view their personal information and statistics, including total stats and stats for each course participated in.
Scrolling down the home page we get to the possible integration of the TestHub Project.
Project Integration - FMI (Faculty of Mathematics and Informatics) Project Integration - SPGE John Atanasov Project Integration - GGF (Faculty of Geology and Geography) Register View acessible only by unauthenticated users. Login View accessible only by unauthenticated users. Logout View accessible only by authenticated users. If the logged account is a Teacher, clicking on the Project Logo there's a dropdown menu with available creating options - create Python Test and create MCQ Test. After the Teacher successfully fills in the form a new Python Test is created. If the logged account is a Teacher, clicking on the Project Logo there's a dropdown menu with available creating options - create Python Test and create MCQ Test. After the Teacher successfully fills in the form a new MultipleChoice Test is created. Every authenticated user can select a specific Python Task, read the description file and submit his/hers solution to the problem. After a few seconds the pages refreshes and scrolling down you can see how many points you've got. Below the Python Test Submission is a list with the last 5 submissions for this task from the current logged in user. Every authenticated user can select a specific MCQ Test, answer the questions and submit his/hers answers. After the user has submitted the Test, he/she is redirected to the Result MCQ Test view, where you can see how many points you've got. Scrolling down you can see which of the submitted answers are correct and which ones are wrong. Clicking on a specific question you can see exactly what is the correct answer and which one you have selected, so you can learn from your mistakes. In the header, clicking on the Submissions, a dropdown menu appears where you can choose from Python and MCQ Submissions. Here can see the last 10 Python submissions in the platform.In the header, clicking on the Submissions, a dropdown menu appears where you can choose from Python and MCQ Submissions. Here can see the last 10 MCQ submissions in the platform. My Profile view, accessible only by authenticated users, where people can see their Personal Data, Total Account Statistics, and Statistics for every course that they have participated in. Edit Profile view, accessible through My Profile page. The logged in user can change it's personal data or go back to the previous page. Delete Profile view, accessible through My Profile page, not a standalone page, but a popup container, asking the user is he/she's sure he/she wants to delete the profile. Starting the server this Home view shows, greeting the Teacher/Administrator, and giving them possible options where to head.