Предупреждение: я далеко не программист, и статья не является технической. Но здесь я выскажусь о принципах построения такой системы, которая была бы лучшим вариантом для организации сайта виртуального государства.
Простота и минимализм
Сайт должен быть прежде всего простым и понятным как с точки зрения пользователя, так и с позиции программиста. Чтобы любой мог бы приобщиться в программированию при желании, и знал что и как работает.
- Простой понятный код
- Простой интерфейс
- Минимум графики
Модульность
Лучше всего систему разделить на несколько частей, независимых друг от друга. Главная часть, которая отвечала бы за загрузку дополнительных модулей, а сама лишь выполняла функцию информационного сайта.
- Разделение на модули
- Отдельная база каждому модулю
- Свой интерфейс
Мобильность и независимость
Так же неплохо было отказаться от использования разных языков и технологий. Например достаточно PHP, CSS, HTML, XML. В таком случае, если все будет храниться только в файлах, включая базу данных, переезд на новый хостинг или даже домен, будет предельно прост.
- Без баз SQL
- Стандартные библиотеки PHP
- Глобальные переменные в одном конфиге
Пользователи и роли
А это самая сложная часть. Хотелось бы сделать так, чтобы сайты не исчезали. Бывает же так (я точно знаю :)), что создаешь сайт, но через какое-то время его забрасываешь. А ведь им мог бы заняться кто-то другой. Поэтому, хорошо бы разработать систему передачи административных прав. И решение бы о его присвоении принималось бы по результатам сдачи экзаменов.
- Отдельное дисковое пространство (аналог территории) каждому
- Разделение прав и ролей
Для небольшого виртуального государства, этого будет вполне достаточно. А если вдруг его будут воспринимать всерьез, тогда можно будет подумать и о расширениях.
Всем удачи!