Skip to content

LynnHaDo/QnA-Website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation


Question-and-Answer


View Demo · Report Bug · Request Feature

Table of Contents
  1. Wireframes
  2. About The Project
  3. Getting Started
  4. Works Cited
  5. Contact

Wireframes

Link to the wireframes for the website.

About The Project

(back to top)

Progress

  • Wireframes
  • Add basic Angular frontend skeleton
  • User authentication set-up
    • Django models and APIs setup
    • Django login/logout with access & refresh tokens
    • Angular login
    • Google authentication (Bugs: Angularx Social Login package button does not work after signing in)
  • Create Python scripts to import CSV into database
  • Set up Django APIs to send answers to questions
  • Render questions, assignments, roster
  • Integrate text editor to answer submission
  • Render answer on the front-end, post answer to database
    • Fix some issues with permissions. The general plan is to first configure the right way to secure the APIs based on user role in Django, then move on to Angular (show/hide content based on the role).
  • Generate clusters. Save those to the database
  • Clean question data (Remove n/a's) before saving it into database
  • Render clusters to the frontend.
  • Add option to claim questions in the clusters. Reserve claimed questions. Save info to database.
  • Add option to answer multiple questions at once.
    • Add option to unclaim questions

See the open issues for a full list of proposed features (and known issues).

(back to top)

Built With

  • Django 5.0.3
  • Angular 16.2.12
  • MySQL 8.3.0
  • MailHog (for testing emails)

More information on packages can be found in requirements.txt.

(back to top)

Prerequisites

Installation

  1. Clone the repo
git clone https://github.com/LynnHaDo/QnA-Website.git

Set up email testing

  1. Navigate to backend folder
  2. Activate Mailhog
cd backend
mailhog

Set up the backend

  1. Run on server
python3 manage.py runserver

Set up the frontend

  1. Navigate to frontend folder
  2. Before npm install to install packages, make sure the correct version of Angular is installed.
  3. Run on server
cd ../frontend
npm install 
ng s

Import data: Run Django scripts

Refer to backend/samples for sample .csv files

  • Import course
cd backend
python3 manage.py runscript import_course --script-args [PATH/TO/COURSE.csv FILE]
  • Import assignments
python3 manage.py runscript import_assignment --script-args [PATH/TO/ASSIGNMENT.csv FILE]
  • Import questions
python3 manage.py runscript import_questions --script-args [PATH/TO/QUESTIONS.csv FILE] [ASSIGNMENT_ID]
  • Delete questions of an assignment
python3 manage.py runscript delete_questions --script-args [ASSIGNMENT_ID]
  • Generate clusters for all questions in an assignment

Note: Clustering results differ each time this is invoked since the algorithm is non-deterministic.

python3 manage.py runscript create_clusters --script-args [ASSIGNMENT_ID]

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published