mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-05-31 12:16:50 -04:00
Update agent docs and add Claude docs
This commit is contained in:
@@ -15,57 +15,5 @@ See those other useful documents as well:
|
||||
- [PERFORMANCE_OPTIMIZATION.md](PERFORMANCE_OPTIMIZATION.md) for performance best practices
|
||||
- [DATABASE_CONNECTION_POOLING.md](DATABASE_CONNECTION_POOLING.md) for database connection management
|
||||
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for resolving common development issues
|
||||
|
||||
### Adding a new profile field
|
||||
|
||||
A profile field is any variable associated with a user profile, such as age, politics, diet, etc. You may want to add a
|
||||
new profile field if it helps people find better matches.
|
||||
|
||||
To do so, you can add code in a similar way as
|
||||
in [this commit](https://github.com/CompassConnections/Compass/commit/940c1f5692f63bf72ddccd4ec3b00b1443801682) for the
|
||||
`religion` field. If you also want people to filter by that profile field, you'll also need to add it to the search
|
||||
filters, as done
|
||||
in [this commit](https://github.com/CompassConnections/Compass/commit/a4bb184e95553184a4c8773d7896e4b570508fe5) (for the
|
||||
`religion` field as well).
|
||||
|
||||
Note that you will also need to add a column to the `profiles` table in the dev database before running the code; you
|
||||
can do so via this SQL command (change the type if not `TEXT`):
|
||||
|
||||
```sql
|
||||
ALTER TABLE profiles
|
||||
ADD COLUMN profile_field TEXT;
|
||||
```
|
||||
|
||||
Store it in `add_profile_field.sql` in the [migrations](../backend/supabase/migrations) folder and
|
||||
run [migrate.sh](../scripts/migrate.sh) from the root folder:
|
||||
|
||||
```bash
|
||||
./scripts/migrate.sh backend/supabase/migrations/add_profile_field.sql
|
||||
```
|
||||
|
||||
Then sync the database types from supabase to the local files (which assist Typescript in typing):
|
||||
|
||||
```bash
|
||||
yarn regen-types dev
|
||||
```
|
||||
|
||||
That's it!
|
||||
|
||||
### Adding a new language
|
||||
|
||||
Adding a new language is very easy, especially with translating tools like large language models (ChatGPT, etc.) which
|
||||
you can use as first draft.
|
||||
|
||||
- Add the language to the LOCALES dictionary in [constants.ts](../common/src/constants.ts) (the key is the locale code,
|
||||
the value is the original language name (not in English)).
|
||||
- Duplicate [fr.json](../web/messages/fr.json) and rename it to the locale code (e.g., `de.json` for German). Translate
|
||||
all the strings in the new file (keep the keys identical). LLMs like ChatGPT may not be able to translate the whole
|
||||
file in one go; try to copy-paste by batch of 300 lines and ask the LLM to
|
||||
`translate the values of the json above to <new language> (keep the keys unchanged)`. In order to fit the bottom
|
||||
navigation bar on mobile, make sure the values for those keys are less than 10 characters: "nav.home", "
|
||||
nav.messages", "nav.more", "nav.notifs", "nav.people".
|
||||
- Duplicate the [fr](../web/public/md/fr) folder and rename it to the locale code (e.g., `de` for German). Translate all
|
||||
the markdown files in the new folder. To do so, you can copy-paste each file into an LLM and ask it to
|
||||
`translate the markdown above to <new language>`.
|
||||
|
||||
That's all, no code needed!
|
||||
- [profile_fields.md](profile_fields.md) for adding new profile fields
|
||||
- [internationalization.md](internationalization.md) for adding new languages
|
||||
|
||||
Reference in New Issue
Block a user