Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Daniel-Stojanovski/finkiopendesk/llms.txt

Use this file to discover all available pages before exploring further.

FinkiOpenDesk provides two personalization features: favorites and voting. Favorites let you bookmark any subject, profession, or channel discussion so you can return to it quickly. Voting lets you rate how relevant a subject is for a specific profession, contributing to the community-driven career guide. Both features require an active login and use a toggle model — performing the action a second time reverses it.
You must be logged in to use favorites or voting. The backend identifies you through the authenticated session. Requests made without a valid session will be rejected.

What you can favorite

Favorites support three target types, defined by the UserFavoriteDto:
interface UserFavoriteDto {
  targetId: string;
  targetType: "subject" | "profession" | "channel";
  targetName?: string;
}
Target typeWhat it represents
subjectAn academic course and its discussion
professionA career profession and its discussion
channelA topic channel within a subject discussion

Toggle behavior

Favoriting is a toggle. If the item is not yet in your favorites, it is added. If it is already favorited, it is removed. The same endpoint handles both cases:
curl -X POST https://api.finkiopendesk.onrender.com/api/favorites/{userId}/set \
  -H "Content-Type: application/json" \
  -d '{"targetId": "{targetId}", "targetType": "subject"}'
The response returns the created UserFavorite record when adding, or nothing when removing.

Reading favorites

Your current favorites are loaded when you log in and kept in the application’s user data context. The discussion list view uses this data to mark favorited items visually without additional requests.
curl https://api.finkiopendesk.onrender.com/api/favorites/{userId}
Returns an array of UserFavorite objects for the user.

How favorites appear in the UI

Discussion cards in the forum and career guide show a visual indicator when the item is in your favorites. The check is done locally by comparing targetId and targetType against your loaded favorites list:
const isFavorite = favorites.some(
  f => f.targetId === targetId && f.targetType === targetType
);

Comparison

FavoritesVoting
Targetssubject, profession, channelsubject within a profession context
ScopePer userPer user, per profession-subject pair
ToggleYesYes
Requires loginYesYes
Visible to othersNo (personal list)Yes (aggregate vote counts are public)

Build docs developers (and LLMs) love