What is the demo for and who participates in the demo?
In Agile, the demo meeting is meant for showing different stakeholders (people who ordered the feature of have say in how exactly it should work) and interested parties the features that were completed during the sprint. It is also a place where the guests can ask questions about what was shown, and make suggestions and requests regarding future development.
When working at a company and doing a demo with your team, the audience you invite might differ depending on the features you complete in the sprint.
For example, when you are working on the self-service application, some of your demo guests are probably representatives from customer service, who want to see the features and maybe ask some questions, as they might have to guide the end users to use the functionality and thus would have to know what is happening. Alternatively, when you have implemented a new table for the company's accounting system, you would want an accountant or two at your demo to validate with them if this table is indeed what they wanted and needed. When working for a company that provides software development services, you will likely have demos with some representatives from the customer side who were the ones requesting the development.
In our project, your demo visitors are other students and teachers involved in the project subject.
What constitutes as a good demo?
In a good demo the features all work as intended (see also: the demo effect) and all the quests understand the work that was done.
How to prepare for a demo?
Agree with your team members what you will demo and who will demo which feature
Take into account your audience's knowledge of the project - for example if you are demoing to people who have not heard anything about your project before, make sure to also give a brief introduction to your project and the general idea
Always start with a brief verbal summary of what you did in the sprint, state the sprint goal and how you did, then move on to showing individual features
Keep in mind what your audience's level of technical understanding is: in our school project we can safely assume that everyone watching knows about as much as you or a bit more, so it's not that much of a concern. However, when working at somewhere, it is often the case that some of the demo guests have no idea what an API or a database is, in which case you need to choose your presentation style accordingly. Otherwise your guests will feel unwelcome and will not return to your team's demo anytime soon.
Have the application ready and running before it's your turn to demo, don't make the guests wait and look at your program's startup logs with you
If any test accounts or additional setup are needed (for example there needs to be a specific state in the database), make sure this is also prepared before the event
If needed, practice in your team to make sure the demo is concise, understandable and well presented