Web app to track anime/films/series you want.
The current version of the project has minimal frontend. Only web API is done. This section will be updated on the first release.
- Ensure you have
.NET 10andDockerinstalled. - Ensure
Dockeris running. - Copy the git repository using
git clone https://github.com/Archivelit/AniTracker.git- Go to the
src/AniTracker.AppHost/srcdirectory
cd ./AniTracker/src/AniTracker.AppHost/src- Run the .NET app
dotnet run -c Debug- Open the
http://localhost:3000/in your web browser. (This is the default frontend host address, not finished yet)
The API uses OpenApi, checkout Program.cs for more info.
POST /auth/login
Authenticate the user and return a JWT token.
{
"email": "string",
"password": "string"
}| Status | Description |
|---|---|
| 200 OK | Authentication successful, returns JWT token |
| 400 Bad | Request Wrong password |
| 404 Not Found | User with provided email not found |
All endpoints require authentication via a cookie token.
GET /me
Returns the authenticated user.
| Status | Description |
|---|---|
| 200 OK | Returns user |
| 400 Bad Request | Invalid token or user not found |
{
"id": "guid",
"username": "string",
"email": "string"
}PATCH /me
Updates the current user.
{
"username": "string?",
"email": "string?",
"password": "string?"
}All fields are optional.
| Status | Description |
|---|---|
| 204 No Content | User updated |
| 400 Bad Request | Invalid token |
| 404 Not Found | User not found |
DELETE /me
Deletes the authenticated user.
| Status | Description |
|---|---|
| 200 OK | User deleted |
| 400 Bad Request | Invalid token or user not found |
| 404 Not Found | Media Get Media List |
GET /medias
Returns a list of media.
| Name | Type | Default | Description |
|---|---|---|---|
| count | int | 10 | Number of media records to return (1–100) |
| Status | Description |
|---|---|
| 200 OK | List of media |
| 400 Bad Request | Invalid count |
[
{
"id": "guid",
"title": "string",
"episodes": 12,
"synopsis": "string",
"airedFrom": "date",
"airedTo": "date",
"status": "string"
}
]GET /medias/{id}
| Name | Type | Default | Description |
|---|---|---|---|
| id | guid | 10 | Media ID |
| Status | Description |
|---|---|
| 200 OK | Media returned |
| 404 Not Found | Media not found |
POST /medias
Creates a new media entry.
{
"title": "string",
"episodes": 12,
"synopsis": "string",
"airedFrom": "date",
"airedTo": "date",
"status": "string"
} | Status | Description |
|---|---|
| 201 Created | Media created |
| 400 Bad Request | Invalid token or user not found |
| 404 Not Found | Media Get Media List |
{
"id": "guid",
"title": "string",
"episodes": 12,
"synopsis": "string"
}PATCH /medias/{id}
Updates a media entry.
| Name | Type | Description |
|---|---|---|
| id | guid | Media ID |
All fields optional.
{
"title": "string?",
"episodes": 12,
"synopsis": "string?",
"episodeDurationInTicks": 0,
"airedFrom": "date?",
"airedTo": "date?",
"status": "string?"
}| Status | Description |
|---|---|
| 204 No Content | Media updated |
| 404 Not Found | Media does not exist |
Media tracked by the authenticated user.
GET /me/medias
Returns all media tracked by the user.
| Status | Description |
|---|---|
| 200 OK | List of user media |
| 400 Bad Request | Invalid token Get User Media |
GET /me/medias/{mediaId}
Returns a specific user-media entry.
| Name | Type | Description |
|---|---|---|
| mediaId | guid | User media ID |
Name Type Description
| Status | Description |
|---|---|
| 200 OK | User media returned |
| 400 Bad Request | Invalid token |
POST /me/medias/{mediaId}
Adds media to the user's list.
| Name | Type | Description |
|---|---|---|
| mediaId | guid | User media ID |
| Status | Description |
|---|---|
| 201 Created | Media added |
| 400 Bad Request | Invalid token |
PATCH /me/medias/{mediaId}
Updates user's media entry.
{
"status": "string?",
"rating": 0,
"episodesWatched": 0,
"startDate": "date?",
"completedDate": "date?",
"isFavorite": true
} | Status | Description |
|---|---|
| 200 OK | Updated |
| 400 Bad Request | Invalid token |
| 404 Not Found | User media not found |
DELETE /me/medias/{mediaId}
Removes media from user's list.
| Status | Description |
|---|---|
| 200 OK | Deleted |
| 400 Bad Request | Invalid token |
| 404 Not Found | Media not found |
The API uses JWT stored in a cookie named token.
Check CONTRIBUTING.md if you want to help developing this product.