I am in the middle of backend development of my project, and I need a python developer to complete it.
My
project is a real-time lecture feedback tool. Front end is done using react.
Here is the aim:
The aim of this project is to improve student-teacher live communication and interaction during lectures by
allowing students to express emotions, questions, thoughts, and feedback through the development of a real-time
feedback tool.
Important - This is a WebApp students will use on their laptops, while a FACE-TO-FACE lecture is going on
simultaneously. It is not for online lectures.
Timeline:
The timeline is a little tight, I will answer any questions you have about the project immediately so you can gain an
understanding of it in a day or maximum 2. I need this done including documentation (explained in document) in
one week, by April 6th.
There are 2 sides, the student interface and the teacher interface. Here the objectives, the yellow highlighted ones
are INCOMPLETE, details for them are highlighted in blue:
       1. STUDENT INTERFACE Develop a user-friendly interface that allows students to express their
          emotions using selectable phrases and emoticons.
        2. TEACHER INTERFACE Develop a real-time visual dashboard tailored for lecturers to monitor
            student inputs visually through graphical representations and statistics, facilitating insights into student
            engagement and comprehension during lectures.
Details -
   ● Insights Display: Provide graphical representations, including pie charts showcasing details of past votes,
        line charts indicating lecture attendance trends for engagement assessment, and bar charts illustrating
        student responses to questions (correct vs. incorrect).
   ● Customization Options: Enable professors to personalize analytics by offering features like drag-and-drop
        dashboard widgets, adjustable graph parameters, and the ability to save customized layouts for future use.
   ● Real-Time Updates: Ensure that the dashboard reflects real-time data updates, allowing lecturers to make
        informed decisions and adjustments during lectures.
       3. TEACHER INTERFACE Implement a smart keyword analysis feature that analyzes all student
       questions and identifies common keywords to help lecturers address frequently asked questions or doubts
       effectively. (using AI) You can implement this in any way for example one way is this:
            -   Each keyword should be presented in a clear and organized manner, with the keyword being
                displayed in bold or highlighted font. the frequency of different keywords should be presented in
                this manner :
            -   The professor can see the top 10 most recurring keywords, or you can filter this to any number such
                as 20 or 100. This list should be scrollable to accommodate a large number of entries, with options
                for sorting or filtering based on frequency or alphabetical order.
            -   When the lecturer clicks on a specific keyword the tool should provide further details about actions
                related to that keyword for instance, displaying related questions containing that keyword.
       Or another way could be the Professor inputs key concepts, topics and subtopics and those words or phrases
are searched in the questions. But this feature is the MOST IMPORTANT in this project. It NEEDS to be
sufficiently complex, and done very impressively. The following need to be added too:
   -   Slang, short forms should be identified
   -   Misspelled words, and typos accounted for
   -   Any offensive words should be filtered out and students flagged, according to the moderation featured
       (described in objective 9).
The keyword analysis tool should continuously analyze incoming student questions in real time updating the list of
keywords and their frequencies accordingly. Lecturers can use this tool for perhaps at the end of every lecture to
sort the most common doubts or provide more resources to cater to students in a more efficient way.
        4. TEACHER INTERFACE Enable attendance tracking by recording the number of students logging
           into their accounts during the lecture. Number of students joining the in-person lectures should be
           recorded as attendance. Professors will only see an overall number of students as an attendance count
           which will be anonymous and not display names of students. (I’m not sure if this is implemented in
           back end , please check)
        5. STUDENT AND TEACHER INTERFACE. Develop an interactive voting feature that allows lecturers
           to quickly format and pose questions to students, offering customized options for real-time voting on
           lecture-related topics or actions. I am not sure if these are implemented please check
   -     When students vote, teachers should see the percentage of students that selected each option.
   -    The teacher should be able to format questions, and which answers are wrong and which are right. (if
        applicable - only for mcqs, not for polls or voting)
        6. STUDENT INTERFACE Provide an option for students to choose whether to keep their names or
           participate anonymously in voting in question asking, ensuring a comfortable and secure environment
           for everyone.
        7. STUDENT AND TEACHER INTERFACE.There should be a resource sharing option where
           students can share relevant learning resources with peers with an explanation of what it's for (which
           lecture) and how it's useful. This should first only be visible to professors for approval, once a
           professor has approved, other students can view these shared resources.
   8. STUDENT AND TEACHER INTERFACE Moderation page- Here the lecturer can exercise the features
      to maintain a secure and professional environment. This includes blocking or removing inappropriate or
      offensive content, and even filtering certain offensive words or phrases and can also extend to blocking
      certain users or students that abuse the software. This feature has been implemented to an extent but the
      following are to be added -
      TEACHER INTERFACE
   - The Smart Keyword Analysis tool can be enhanced with a content filtering mechanism. It should scan
        text-based feedback and questions for offensive words or phrases using a predefined list. If any
        inappropriate content is detected, the tool can flag the submission for moderation. Moderators can then
        review flagged content and take appropriate action.
   -    If a student abuses anonymity by making offensive remarks, they should forfeit the option to remain
        anonymous.
        STUDENT INTERFACE
   -    Implement a reporting mechanism that allows students to quickly report offensive content. Reports can
        trigger content review and moderation.
   -    Clearly communicate community guidelines to students, emphasizing the importance of respectful and
        constructive interactions. Ensure that they understand the consequences for violating these guidelines,
        which included temporary or permanent loss of anonymity or access to the system.
   9.      STUDENT INTERFACE Enhance the system by integrating a MyAccount section for students, featuring
        a violation overview and an interaction rating system.
Details:
- Interaction Rating: System to rate student engagement based on weekly interaction frequency.
- Interaction Metrics: Track actions like questions, hand raises, poll participation, and emoji reactions.
- Resetting Weekly Average: Reset rating at the start of each week.
- display number of interactions every day, totalling interactions that day, plus those for the days of how much ever
the week has passed
- Interaction Thresholds: At the end of the week, Assign bronze, silver, and gold ratings based on weekly
interaction totals. 1 - 30 interactions per week is a bronze medal, 31- 50 is silver and 51 + is gold.
If I face any errors or problems while testing, I will need that to be fixed immediately. I will also need certain
documentation regarding implementation:
   1. Discussing appropriate software engineering techniques, (agile/waterfall/etc) that were used and why.
   2. Describe any specific design principles guiding EngageMe's development.
   3. System Architecture for EngageMe - Detailing the overall architecture of EngageMe, including key
      components and data flow, this section offers a comprehensive understanding of the system's structure.
         - Description of the overall structure of EngageMe.
         - Key components and their interactions.
         - Schematic Diagrams
         - Visual representations illustrating system architecture and data flow.
   4. Design Decisions and Justifications for EngageMe - Explaining design choices for the data model,
      algorithm design, security, and privacy considerations.
         - Data Model
               - Description of data structures for student inputs, feedback, and attendance tracking.
               - Justification for data model choices.
         - Algorithm Design
               - Discussion of algorithms for real-time data visualization and keyword analysis.
               - Justification based on performance and scalability.
         - Security and Privacy Considerations
               - Explanation of security measures to protect user data and anonymity.
               - Justification for security protocols.
   5. Integration and Interoperability - Explain third-party integrations and interoperability with existing
      systems, this section elucidates how EngageMe interacts with external services and data sources.
   6. APIs and Libraries - Discuss any external APIs or libraries evaluated or incorporated into the project.
      Explain how these APIs and libraries were used to enhance functionality or streamline development.
   7. Mention the IDE used for the project - Briefly explain the reasons for choosing a particular IDE and how it
      facilitated the development process.