From 1010b3a4b5b015af819c7d38f29de5fc81fd5596 Mon Sep 17 00:00:00 2001 From: Amy Gale Ruth Bowersox Date: Wed, 22 Oct 2025 10:32:49 -0600 Subject: [PATCH] adding some documentation --- README.md | 5 ++++- TODO.md | 20 ++++++++++++++++++++ database/community.go | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 TODO.md diff --git a/README.md b/README.md index 17a6270..072feb5 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..ef8a364 --- /dev/null +++ b/TODO.md @@ -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? diff --git a/database/community.go b/database/community.go index b56c56c..33aa811 100644 --- a/database/community.go +++ b/database/community.go @@ -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