Comments (10)
There is an overhead when trying to coalesce all chat into a single space for a specific class.
I believe you want to forward this approach and also suggest threads as a means to isolate certain topics of discussion but even though it sounds reasonably straightforward, you risk too much complexity to those chat spaces. Small talk, class gossip, everything. (This isn't prevented in the proposed concept but reduces it considerably better)
The premise of a single chat for a schedule is on the basis of individual class schedules having objectives.
A tutor might decide to clear a particular slide or chapter on a particular class schedule and we want to keep all the conversations, insights and questions to that single event. This provides a quicker navigation through units of study at the time of need, and also promises to make one activity (feature of the app) easier to perform: making of flashcards and shareable study notes.
If this approach fails to achieve what it is designed to do, we can always fall back to alternatives. Happy to talk @Sarps
from compa.
But we won't automatically create discussions for schedules. We will add a button for each schedule to "start a discussion". All it does is tag the discussion with that lesson. Nothing more. We should be able to have more than one person start a discussion on a lesson.
I could have a problem from the lesson I want someone to explain. Another person can also have another problem.
For now, we can't have live discussions as well. Traffic doesn't support that effort.
from compa.
awesome
from compa.
nit:
Each class schedule from the database would be able to spawn a live chat discussion forum...
I'd suggest the discussion forum be tied to a class instead of a class schedule. That is, there is one forum for a class throughout the duration of the semester or trimester. In this manner, conversations from previous schedules of the same class is retained and attendees can build upon past topics.
Should there be a need for a more structured, we could introduce threading in the forum per schedule (that could may not be necessary now).
Proposed Flow
Maintain same flow as proposed by @blackprince001 #9 (comment)
Except
-
ON CLASS SCHEDULE END: Retain the
@discussion_chat_id
for reuse if need be -
ON CLASS SCHEDULE START: Reuse
@discussion_chat_id
if any exists for a#class
else create new@discussion_chat_id
from compa.
Makes sense
from compa.
I agree with @blackprince001 about 1 discussion per schedule.
Let me use this opportunity to share what I think a Discussion looks like. I prefer to generalize concepts to make things easier to reason and implement. In that sense, a discussion is basically a Post
. Comments to discussions will also be Post
s.
What this design allows are:
- Have one UI component for rendering posts.
- Since posts can accept attachments like media, documents and applets, this implies comments can have them too; just like the OP discussion.
- Discussions (OP) can quote other posts (whether discussion or comment). Imagine what this enables: you can spawn a new discussion based on a comment someone made by quoting it. (Quoting here is just like Twitter's quote). Also comments can quote other comments.
Constraints
We should allow one level of nesting in comments. If a nested comment is compelled to go deeper, the user should just spawn a new discussion. I prefer flat hierarchies. It's easy to get lost.
Structure
Post {
text: string // actually in limited markdown
media: Media[] // images, videos, audio recordings, documents
applet: Applet // this will later later later
user: id
tags: string[] // more on that below
parent?: id // if it's non-null, this is a comment
quote?: id // discussion being quoted
}
Media {
url: string
type: 'document' | 'image' | 'video' ...
thumbnail: string
uploaded_by: id
}
Tags
Since discussions can be about anything, we'll need a way to mark them on the discussion. It'll suboptimal to have a field for each possible tag, for example
...
related_programme?: id
related_schedule?: id
related_community?: id
We can see that, this will mean as the possible ways of tagging grows, so does the size of the Discussion structure. Instead, we can do something like this:
discussion.tags = ['programme:8', 'schedule:92']
If it's not already apparent, this allows to even tag one discussion with two programmes, which is valid.
from compa.
from compa.
But we won't automatically create discussions for schedules. We will add a button for each schedule to "start a discussion". All it does is tag the discussion with that lesson. Nothing more. We should be able to have more than one person start a discussion on a lesson.
I could have a problem from the lesson I want someone to explain. Another person can also have another problem.
For now, we can't have live discussions as well. Traffic doesn't support that effort.
I've been contemplating the implementation of open discussions for live classes, and I have a slight concern about the potential for overwhelming or distracting situations, especially in larger classes.
For example , a class has 100+ students and 30 people simultaneously open discussions, it could become challenging for students . Perhaps we should consider setting some guidelines to streamline the process. One option could be to limit the number of discussions opened during a live session to prevent information overload. Alternatively, we could delegate specific individuals to initiate discussions, ensuring a more organized and focused approach.
Another point to consider is whether these discussions should be limited to occurring during the class or if there's room for post-class discussions. This distinction might help strike a balance between real-time interaction and minimizing disruptions during the live session.
from compa.
Thanks @FrederickOB
Discussions are peer-controlled not organization-controlled.
A better analogy is just like a tweet. Or a stackoverflow question (+answers). A forum.
Having that in mind, discussions are in the interests of whoever creates them and anybody interested gets engaged. Discussions can go on forever. It doesn't even have to be purely academic. (Though, in an academic setting, it natural most discussions will)
People not even in your class can interact with your discussion. Almost everything is designed to be open on compa. Fundamentally.
Discussions are also not meant to be live. They won't be live any time soon too.
I don't see any instance where there'll be a live discussion on an ongoing class schedule. I don't see that happening sooner or in the remote future. Until then...
Did this help make things clearer?
from compa.
@blackmann oh okay I understand now πͺπΏ
from compa.
Related Issues (20)
- School Request: UPSA - University of Professional Studies Accra HOT 2
- School Request: UDS - University for Development Studies, Nyankpalaa HOT 1
- Favicon HOT 1
- Donβt allow adding a lesson to non-current sem/year
- Application error HOT 1
- Styling Issue: Dark Mode Text Visibility HOT 2
- Backend validation of email address HOT 1
- Improve error UX for conflict errors HOT 1
- Why Request method checks ? HOT 2
- Instrumentation
- School Request: <Radford University College>
- School Request: <Ho Technical University>
- RFC: User Profiles HOT 1
- RFC - Notification system HOT 8
- Marketplace Design HOT 3
- Username field on login page is case-sensitive HOT 1
- Feat: Edit Post
- Error and Feature Enhancement HOT 1
- Error during Authentication HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from compa.