adding some documentation

This commit is contained in:
2025-10-22 10:32:49 -06:00
parent 69e7a2a39a
commit 1010b3a4b5
3 changed files with 25 additions and 1 deletions
+4 -1
View File
@@ -1,9 +1,12 @@
# Amsterdam Web Communities System
Amsterdam is a system allowing for the hosting of multiple virtual communities, each with services such as conferencing. A user on
an Amsterdam site may join multiple virtual communities on that site.
## Why "Amsterdam"?
The first implementation of this concept was in Durand Communications' CommunityWare software, which was code-named "Rome" when it
was in development. Rome was a center of community in the andient world.
was in development. Rome was a center of community in the ancient world.
The second implementation was the Java code I wrote to rescue Electric Minds; I named it "Venice," which was a center of community
during the Renaissance.
+20
View File
@@ -0,0 +1,20 @@
# Future Directions for Amsterdam
After the point where it reaches feature parity with Venice circa 2006.
## Immediate Cleanups Required
* A better way to set up the database than `setup/database.sql`. Bring the table setup into the application somehow.
The [migrate](https://github.com/golang-migrate/migrate) library might be of use here.
* Either implement the Calendar and Chat, or take those menu entries out.
* For Chat, if it's implemented, it should use XMPP.
* Implement proper help and online documentation.
## Additional Items
* Decouple from MySQL, introduce other database support. Postgres and SQLite are the two priorities here.
* Fix password storage. Straight SHA-1 hashes aren't gonna cut it. There are better ways.
* Introduce OAuth authentication? (Related to above)
* Post storage - replace "limited" HTML with Markdown.
* A proper API for the system.
* Figure out how to interlink Amsterdam instances. ActivityPub in some fashion?
+1
View File
@@ -163,6 +163,7 @@ func (c *Community) HostQ() *User {
return u
}
// LanguageTag returns the tag for the community's language.
func (c *Community) LanguageTag() (*language.Tag, error) {
if c.Language == nil {
return nil, nil