Registers a new user.
{
"username": "exampleuser",
"email": "user@example.com",
"password": "password123",
"fullname": {
"firstname": "John",
"lastname": "Doe"
}
}{
"success": true,
"message": "User created successfully",
"data": {
"_id": "user_id",
"username": "exampleuser",
"email": "user@example.com",
"fullname": {
"firstname": "John",
"lastname": "Doe"
},
"isCR": false,
"class": "class_id",
"avatar": "avatar_url",
"folders": [],
"files": [],
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
}Logs in an existing user using either username or email and password.
{
"username": "exampleuser",
"password": "password123"
}
// or
{
"email": "user@example.com",
"password": "password123"
}{
"success": true,
"token": "jwt_token",
"user": {
"_id": "user_id",
"username": "exampleuser",
"email": "user@example.com",
"fullname": {
"firstname": "John",
"lastname": "Doe"
},
"isCR": false,
"class": "class_id",
"avatar": "avatar_url",
"folders": [],
"files": [],
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
}Get the current user's profile. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"success": true,
"user": {
"_id": "user_id",
"username": "exampleuser",
"email": "user@example.com",
"fullname": {
"firstname": "John",
"lastname": "Doe"
},
"isCR": false,
"class": "class_id",
"avatar": "avatar_url",
"folders": [],
"files": [],
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
}Logout the current user. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"success": true,
"message": "User logged out successfully"
}Update user's avatar. Requires authentication.
{
"Authorization": "Bearer jwt_token",
"Content-Type": "multipart/form-data"
}Form Data:
avatar: File
{
"success": true,
"message": "avatar updated successfully",
"user": {
"_id": "user_id",
"username": "exampleuser",
"email": "user@example.com",
"fullname": {
"firstname": "John",
"lastname": "Doe"
},
"avatar": "new_avatar_url",
"isCR": false,
"class": "class_id",
"folders": [],
"files": [],
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
}Update user's password. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"oldPassword": "current_password",
"newPassword": "new_password",
"confirmPassword": "new_password"
}{
"success": true,
"message": "Password updated successfully"
}Create a new folder. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"name": "New Folder"
}{
"success": true,
"message": "Folder created successfully.",
"folder": {
"_id": "folder_id",
"name": "New Folder",
"parent": null,
"folders": [],
"files": [],
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
}Get all folders and files of the current user. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"success": true,
"folders": [
{
"_id": "folder_id",
"name": "Folder 1",
"parent": null,
"folders": [],
"files": [],
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
],
"files": [
{
"_id": "file_id",
"parent": null,
"format": "jpg",
"resource_type": "image",
"url": "file_url",
"original_filename": "file_name",
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
]
}Get a folder by its ID. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"success": true,
"folder": {
"_id": "folder_id",
"name": "Folder 1",
"parent": null,
"folders": [],
"files": [],
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
}Get the hierarchy of a folder by its ID. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"success": true,
"array": [
{
"name": "Root Folder",
"id": "root_folder_id"
},
{
"name": "Sub Folder",
"id": "sub_folder_id"
}
]
}Upload a new file. Requires authentication.
{
"Authorization": "Bearer jwt_token",
"Content-Type": "multipart/form-data"
}Form Data:
file: File
{
"success": true,
"message": "File uploaded successfully",
"newFile": {
"_id": "file_id",
"parent": null,
"format": "jpg",
"resource_type": "image",
"url": "file_url",
"original_filename": "file_name",
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
}Create a new class. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"name": "Class Name",
"startYear": 2023,
"endYear": 2024,
"department": "Department Name"
}{
"success": true,
"message": "Class created successfully",
"data": {
"_id": "class_id",
"name": "Class Name",
"startYear": 2023,
"endYear": 2024,
"department": "Department Name",
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
}Get all classes. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"success": true,
"classes": [
{
"_id": "class_id",
"name": "Class Name",
"startYear": 2023,
"endYear": 2024,
"department": "Department Name",
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
]
}Get a class by its ID. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"success": true,
"message": "Class fetched successfully",
"data": {
"class": {
"_id": "class_id",
"name": "Class Name",
"startYear": 2023,
"endYear": 2024,
"department": "Department Name",
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
},
"students": [
{
"_id": "student_id",
"username": "student_username",
"email": "student@example.com",
"fullname": {
"firstname": "John",
"lastname": "Doe"
},
"class": "class_id",
"avatar": "avatar_url",
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
]
}
}Edit a class by its ID. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"name": "Updated Class Name",
"startYear": 2023,
"endYear": 2024,
"department": "Updated Department Name"
}{
"success": true,
"message": "Class updated successfully",
"data": {
"_id": "class_id",
"name": "Updated Class Name",
"startYear": 2023,
"endYear": 2024,
"department": "Updated Department Name",
"createdAt": "2023-10-01T00:00:00.000Z",
"updatedAt": "2023-10-01T00:00:00.000Z"
}
}Remove a student from a class. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"success": true,
"message": "Student removed from class successfully"
}Add a student to a class. Requires authentication.
{
"Authorization": "Bearer jwt_token"
}{
"success": true,
"message": "Student added to class successfully"
}