Lists and variables are confused?

Thank you so much for asking. This is my bad for not explaining that part. So I started working on this à long time ago before the pandemic so it was made to help organize real life meetings for a group to evaluate current and future events and help protocol chief keep everything on time. He’d prepare the plan for the reunion and add lunch breaks or whatever he wants as a topic. Then they discuss each topic. There might be some overlapping but that’s why the chronometer is adjustable. It is a one part meeting not scattered. If that topic was an already done event members get to vote on it from 0 to 10 each member 1 vote only. Each member named will say outloud their vote and during all this time this app will only be held by 1 person the protocol chief. For the reunions section you make a new plan (or edit an old one) and then type in the topics and the time specified for each one then it is automatically saved. I hope that answers all.

This is still ambiguous.

A vote is what?

  • A numerical score assigned by each member to the idea for a topic?
  • A numerical score assigned to a particular speech on a topic?
  • A selection of which speech on a topic was the best?
  • A yes/no vote on whether or not that is a good topic to include?

The vote if you’ve seen the code is a number from 0 to 10 by 0.5 that each member chooses as I said in the comment. It can be 5.5 7.5 but not 5.6 or 7.1. The votes are meant to evaluate certain topics and how successful they were/how enjoyable they were according to each member

So the protocol chief works for the hall, or does he work for the group of people that wants to hold multiple reunions?

He is also concidered a member so yes he works for the group of people that want to hold the reunions. Let me just clarify there’s 1 meeting at a time!

Here’s my view of the data model …

The root of all data structures is the set of Reunions.

A Reunion has:

  • a reunion name (text) (“SuperHeroes 2020”)
  • a list of members (text) (“Superman, Batman, Spiderman, Green Arrow, Star Girl”)
  • a start and end time (datetimes) (5/17/2020 9 AM- 5/18/2020 5 PM)
  • a list of Topics (text) (“Privacy, Costumes, Real Estate, Nemeses”)
  • a list of Speeches (see below)

A Speech has

  • a speech title (“Mask or Glasses?”)
  • a parent Reunion (text) (“SuperHeroes 2020”)
  • a parent Topic in that Reunion (text) (“Privacy”)
  • a speaker chosen from the parent Reunion’s members (text) (Superman)
  • a start and end time (within the Reunion and not overlapping any other Speech in that Reunion) (5/17/2020 9 AM - 5/17/2020 10 AM)
  • a list of attendees chosen from the Reunion members list (Batman, Spiderman, SuperGirl)
  • a list of votes (see below)

A Vote has

  • a parent Reunion (“SuperHeroes 2020”)
  • a parent Topic in that Reunion (“Privacy”)
  • a parent Speech in that Topic in that Reunion (“Mask or Glasses?”)
  • a voting Member Attendee in that Speech (SuperGirl)
  • a numerical score (0-10 by halves) (7.5)

This looks like 4 tables if you use a table based approach.

Here is a bundle of table filters and a very nice group-by value procedure …

select_where_equijoin.aia (9.0 KB) select_where_sample1.aia (10.0 KB) select_where_sample2.aia (7.3 KB) SUM_test

Can you explain what these blocks serve I’m a bit confused and overwhelmed xD

The blocks came from this project and doc …

This sample project is a starter project to learn about rows and columns in tables (lists of lists).

I see from the blocks in your project you have not tied your data together using either tables or dictionaries, only lists. Tables and dictionaries are like the bones and cartilage of your data. Without them, your data just lays in a puddle.

Besides the sample app, see the How to Work With Lists article link at FAQ Section: Lists

What does this exactly solve? Im a bit new to this method and I hope you can bear with me for a bit… It’s a sort of way to organize data? And hopefully avoid any problems?

Your app requirements are complex enough to require tracking the links between your pieces of data through a data model.

A data model is like a blueprint for a builder.
A blueprint from an architect helps the builder understand how the parts of a project will fit together.
image
image

If you have worked with a spreadsheet like Excel or Google Sheets, you are a step closer to understanding the relational data model and its fundamental ideas of tying together tables with primary and foreign keys.
Search for Introduction to SQL
to see the powerful things that can be done with tables if you use SQL (extensions available, not from me.)

Im getting a better idea… Still a bit foggy but are you talking about work inside or outside of the app or both? I get the data model is something outside of the app but then you sent code about a table and I don’t know what tbh xD

The code I gave you may have been premature, assuming you would be using tables instead of dictionaries for your project.

At this phase of my (and your) understanding of the project,
what do you think of the sample data model and its sample data (Superheroes 2020) ?

A data model is an important tool early in a project, to make sure you are building the right thing.

You don’t want to build a garden string trimmer, only to learn later from the customer they wanted you to build a helicopter.

I still have no idea what you’re talking about… I’ve been reading and trying to understand what you’re sending me but I just can’t… I’m not a professional coder and not even close to being one. The only thing I think I got was that instead of creating a bunch of “initiate global value” you want to create 1 list/table that has all the variables? I don’t know and I really hope you can make it as simple as possible.
As for the data model it is what I need and actually a bit more than what I had in mind: Here’s what I had in mind now that you’ve given an example:

Unnecessary.

No. I’ll explain in a bit.

Nothing. Absolutely nothing. Speeches are litterally just a chronometer for each member to talk. That’s all. No need for titles. A speech is a window of time specified by dividing the time for a topic by members who want to speak. So all that I’ll leave is:

You can’t vote on speeches. Because it’s less of a speech and more of an opinion/discussion. You give your opinion. others may comment on it but that’s it. You don’t vote it.
I hope this clarifies things a bit more. It is supposed to be a simple app. The more info and data there is the less easy and quick it is to use and it gets crowded too quickly.
Here’s a quick summary of the app: Get a list of members, Create a reunion plan that has topics to discuss and time for each one then save the plan. When the meeting comes you open the plan and mark presence then choose speakers for each topic. The time for each speaker is the time specified for that topic divided by the number of speakers for that topic. You may tweak the time. When all speakers spoke, all present members get to vote on the “topic” if it’s a finished task or project. Then on to the next topic. At the end, you get a text file with a small summary ( Presence, Topics, speakers, votes)

Can you show a small sample of that text file (using recognizeable sample names and topics )?

Reunion n23:
Date: 5/20/202
(Location added manually cuz it’s always last minute and a problem)
Present members:
Superman
Batman
SuperGirl
Absent members:
Spiderman
.
.
.
Topics:
Superheroes in 2020.
Mask or Glasses.
Superheroes visit a children’s hospital.
Superheroes rebuild a house.
Superheroes’ festival
.
Superheroes in 2020
(we leave some space to later on manually add notes and stuff outside of the app)


Mask or Glasses


Superheroes visit a children’s hospital

Final note (sum of votes divided by number of voters): 8.5


and so on… that’s it! I can add people who spoke in each topic… If needed but for now that’s all.

I notice on Screen1 of your app sample you had the Members list picker before the Reunions List Picker.

May I assume you plan on reusing this app for different groups of members, that will attend different reunions?

If so, the Reunions should be first, with the option to copy in members from old reunions?

No. It’s just that members can change. Some may leave and others may get kicked out. I just didn’t want to have to change that from the code everytime it happens. So I gave the option to change the list of members!

Hello. I just wanted to check in. Is something wrong?

I have not forgotten you.

Here is a doc I created for another AI2 user that also needed to keep a daily schedule.

Learning to use dictionaries will help you organize your events.
http://ai2.appinventor.mit.edu/reference/blocks/dictionaries.html

I don’t have a problem with saving the apointments… I’m having trouble understanding what’s wrong with the code. I went through the whole thing a couple of times and still couldnt understand what’s causing the issue. Do I need to start all over again?