In this case you will have several programs, not just one.
- You will have a web application that will be responsible for all the logic and storage.
- Desktop clients (you can also have mobile clients)
- API for communicating your Web Application with your clients, this API will be a WebService.
In the web application you will have: User Management, Discipline Management, License Management, Note Release Management, Etc. It will take all possible actions and responsibilities of your application
The API is an interface in which Internet, Desktop, Mobile (android, iOS, Windows Phone) applications can interact with your site, such as authentication, get list of students, send notes, etc.
The Desktop and Mobile applications in this case will be API clients, that is, they will depend on the web application, to avoid duplication of data and the dangers this brings as outdated data for example Desktop and Mobile applications will do calls via the API to perform note posting, get student grade, and so on.
The normal structure of a web application would be:
- WebServer - Responsible for program logic.
- DataBase Server - Responsible for storing information.
- API server - Responsible for providing the interface for access, usually separated from the web server because if one gives the problem the other will not be affected, it also helps to divide the load.
Desktop and mobile applications will have:
- Basic consumption logic, for example a form that asks for user and password, sends to the server and when receiving the message of success allows the use of the application.
- WebService interface compatible with that used by the API.
Sometimes I can be a bit confused, but what you'll get is more or less two categories of programs, the Web Application that centralizes everything and the others that consume the data.