-
Notifications
You must be signed in to change notification settings - Fork 0
API Endpoints Documentation
- Authentication
- Challenges
- Comments
- Home Page
- Posts
- Post Likes
- Profile
- Search
- Users
- Waste Goals
- Waste Logs
AuthController - Handles user authentication and registration
-
POST /api/auth/login
- Authenticates a user
- Request Body:
LoginRequest(username, password) - Returns:
LoginResponsewith authentication details
-
POST /api/auth/register
- Registers a new user
- Request Body:
RegisterRequest(username, email, password) - Returns:
RegisterResponsewith registration status
ChallengeController - Manages challenges and leaderboards
-
POST /api/challenges/create
- Creates a new challenge
- Request Body:
CreateChallengeRequest - Returns:
ChallengeResponsewith created challenge details
-
PUT /api/challenges/end/{id}
- Ends a specific challenge
- Path Variable:
id(challenge ID) - Returns:
EndChallengeResponsewith ending status
-
POST /api/challenges/attend
- Allows a user to attend a challenge
- Request Body:
AttendChallengeRequest - Returns:
AttendChallengeResponsewith attendance status
-
DELETE /api/challenges/leave/{username}/{challengeId}
- Allows a user to leave a challenge
- Path Variables:
username,challengeId - Returns:
LeaveChallengeResponsewith leave status
-
GET /api/challenges/leaderboard
- Gets leaderboard for a specific challenge
- Query Param:
id(challenge ID) - Returns: List of
LeaderboardEntryobjects
-
GET /api/challenges
- Gets all challenges for a user
- Query Param:
username - Returns: List of
ChallengeListResponseobjects
CommentController - Manages post comments
-
POST /api/comments
- Adds a new comment to a post
- Request Body:
CommentRequest(content, username, postId) - Returns:
CommentResponsewith comment details
-
PUT /api/comments/{commentId}
- Updates an existing comment
- Path Variable:
commentId - Request Body:
CommentRequest - Returns: Updated
CommentResponse
-
DELETE /api/comments/{commentId}
- Deletes a comment
- Path Variable:
commentId - Returns: Map with deletion status
-
GET /api/comments/post/{postId}
- Gets all comments for a post
- Path Variable:
postId - Returns:
GetCommentsResponsewith list of comments
HomePageController - Provides home page content
-
GET /api/home/getMotivated
- Fetches a random motivational quote
- Returns:
MotivationalQuoteResponse
-
GET /api/home/number/{number}
- Gets trivia about a specific number
- Path Variable:
number - Returns:
NumberTriviaResponse
-
GET /api/home/getAirQuality
- Gets air quality data for a location
- Query Param:
location - Returns:
AirQualityResponse
PostController - Manages user posts
-
GET /api/posts/info
- Gets paginated posts
- Query Params:
username(optional),size,lastPostId(optional) - Returns: List of
GetPostResponseobjects
-
POST /api/posts/create
- Creates a new post (supports text and image)
- Form Data:
content,username,photoFile(optional) - Returns:
CreateOrEditPostResponse
-
PUT /api/posts/edit/{postId}
- Edits an existing post
- Path Variable:
postId - Form Data:
content,username,photoFile(optional) - Returns:
CreateOrEditPostResponse
-
DELETE /api/posts/delete/{postId}
- Deletes a post
- Path Variable:
postId - Returns:
DeletePostResponse
-
GET /api/posts/mostLikedPosts
- Gets most liked posts
- Query Params:
username(optional),size - Returns: List of
GetPostResponseobjects
-
POST /api/posts/save
- Saves a post for a user
- Request Body:
SavePostRequest - Returns:
SavePostResponse
-
DELETE /api/posts/unsave{username}/{postId}
- Unsaves a post
- Path Variables:
username,postId - Returns: Map with deletion status
-
GET /api/posts/getSavedPosts
- Gets all saved posts for a user
- Query Param:
username - Returns: List of
GetSavedPostResponseobjects
-
GET /api/posts/getPostsForUser
- Gets all posts by a specific user
- Query Param:
username - Returns: List of
GetPostResponseobjects
PostLikeController - Manages post likes
-
POST /api/posts/like
- Adds a like to a post
- Request Body:
PostLikeRequest(username, postId) - Returns: Map with like status
-
DELETE /api/posts/like
- Removes a like from a post
- Request Body:
PostLikeRequest - Returns: Map with unlike status
-
GET /api/posts/{postId}/likes
- Gets all likes for a post
- Path Variable:
postId - Returns:
PostLikeResponsewith like count and details
ProfileController - Manages user profiles
-
GET /api/profile/info
- Gets profile information
- Query Param:
username - Returns:
ProfileResponse
-
PUT /api/profile/edit
- Edits profile information
- Request Body:
ProfileEditAndCreateRequest - Returns: Updated
ProfileResponse
-
POST /api/profile/{username}/photo
- Uploads a profile photo
- Path Variable:
username - Form Data:
file(image) - Returns:
ProfileResponsewith updated photo URL
-
GET /api/profile/badges
- Gets user badges
- Query Param:
username - Returns: List of
BadgeResponseobjects
SearchController - Provides search functionality
-
GET /api/search/posts/semantic
- Searches posts semantically
- Query Params:
query(search term),username(optional),lang(language, default "en") - Returns: List of
GetPostResponseobjects matching the query
UserController - Provides user statistics
-
GET /api/users/count
- Gets total user count
- Returns:
UserCountResponse
WasteGoalController - Manages waste reduction goals
-
GET /api/goals/info
- Gets paginated waste goals
- Query Params:
username,size,lastGoalId(optional) - Returns: List of
GetWasteGoalResponseobjects
-
POST /api/goals/create
- Creates a new waste goal
- Request Body:
CreateWasteGoalRequest - Returns:
CreateWasteGoalResponse
-
PUT /api/goals/edit/{goalId}
- Edits an existing waste goal
- Path Variable:
goalId - Request Body: Updated
WasteGoalobject - Returns:
CreateWasteGoalResponse
-
DELETE /api/goals/delete/{goalId}
- Deletes a waste goal
- Path Variable:
goalId - Returns:
DeleteWasteGoalResponse
WasteLogController - Manages waste tracking logs
-
GET /api/logs/get
- Gets waste logs for a goal
- Query Param:
goalId - Returns: List of
GetWasteLogResponseobjects
-
POST /api/logs/create
- Creates a new waste log
- Request Body:
CreateWasteLogRequest - Returns:
CreateOrEditWasteLogResponse
-
PUT /api/logs/update/{logId}
- Updates a waste log
- Path Variable:
logId - Request Body:
UpdateWasteLogRequest - Returns:
CreateOrEditWasteLogResponse
-
DELETE /api/logs/delete/{logId}
- Deletes a waste log
- Path Variable:
logId - Returns:
DeleteWasteLogResponse
-
GET /api/logs/totalLogAmountForIntervalAndType
- Gets total waste amount for a specific type and time interval
- Query Params:
startDate,endDate,wasteType - Returns:
TotalLogResponse

WasteLess App
- Customer Milestone 1 Report of CMPE 451 Fall 2025
- Customer Milestone 2 Report of CMPE 451 Fall 2025
- Customer Milestone 3 Report of CMPE 451 Fall 2025
- Meeting 1 (Lab-1) - (23.09.2025)
- Meeting 2 (Zoom) - (25.09.2025)
- Meeting 3 (Lab-2) - (30.09.2025)
- Meeting 4 (Zoom) - (02.10.2025)
- Customer Meeting 1 - (06.10.2025)
- Meeting 5 (Lab-3) - (07.10.2025)
- Meeting 6 (Zoom) - (09.10.2025)
- Meeting 7 (Lab-4) - (14.10.2025)
- Meeting 8 (Zoom) - (16.10.2025)
- Meeting 9 (Zoom) - (22.10.2025)
- Meeting 10 (Zoom) - (30.10.2025)
- Meeting 11 (Lab-5) - (05.11.2025)
- Meeting 12 (Zoom) - (6.11.2025)
- Meeting 13 (Lab-6) - (11.11.2025)
- Meeting 14 (Zoom) - (13.11.2025)
- Meeting 15 (Lab-7) - (18.11.2025)
- Meeting 16 (Zoom) - (20.11.2025)
- Meeting 17 (Zoom) - (26.11.2025)
- Meeting 19 (Zoom) - (11.12.2025)
- Meeting 20 (Zoom) - (17.12.2025)
🛠️ Backend Meeting Notes
💻 Frontend Meeting Notes
📱 Mobile Meeting Notes
- Lab 1 Report
- Lab 2 Report
- Lab 3 Report
- Lab 4 Report
- Lab 5 Report
- Lab 5 MVP Report
- Lab 6 Report
- Lab 7 Report
- Lab 7 M2 Demo Preparation Report
- Lab 8 Report
- Lab 8 Requirements Review & Acceptance Planning
- Lab 9 Report
- Lab 9 M3 Demo Preparation Report
- Requirements
- Elicitation Questions
- Use Case Diagrams
- Class UML Diagram
- Sequence Diagrams
- Demo Scenario - MS1
- Demo Sceanrio - MVP
- Demo Sceanrio - MS3
Abdurrahman Arslan
Abdülkerim Kasar
Ali Bartu Konca
Arda Yalçındağ
Cengiz Bilal Sarı
Emre Kılıç
Osman Yusuf Tosun
Serdar Bahar
Yusuf Onur Öksüz
Yüksel Eren Şen
⌛ 352 Sidebar
🏠 Home
📌 Team Members and Contributions
- Meeting 1 - (14.02.2025)
- Meeting 2 - (20.02.2025)
- Meeting 3 - (27.02.2025)
- Customer Meeting 1 - (03.03.2025)
- Meeting 5 - (06.03.2025)
- Meeting 6 - (11.03.2025)
- Meeting 7 - (13.03.2025)
- Meeting 8 - (16.03.2025)
- Meeting 9 - (20.03.2025)
- Meeting 10 - (24.03.2025)
- Meeting 11 - (10.04.2025)
- Meeting 12 - (16.04.2025)
- Meeting 13 - (22.04.2025)
- Meeting 14 - (28.04.2025)
- Meeting 15 - (03.05.2025)
- Meeting 16 - (05.05.2025)
- Meeting 17 - (09.05.2025)
- Meeting 18 - (11.05.2025)