You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Explain the authentication mechanism used in the backend, such as OAuth, JWT, etc.
69
+
### Authentication
137
70
138
-
### Error Handling <aname="error-handling"></a>
71
+
Cookie based authentication is implemented. Cookie expiration set to -1 and can be changed in [application.properties](src/main/resources/application.properties) file
139
72
140
-
Document how errors are handled, including error codes, messages, and possible solutions.
73
+
### Error Handling
141
74
142
-
## Frontend (React.js) <aname="frontend"></a>
75
+
Most errors are handled by ResponseEntity and Http status codes responses
- Purpose: The DislikedMovieButton component is a reusable React component designed to represent a button that allows users to dislike a movie. It interacts with the server to check the current disliked state of the movie and enables users to toggle the dislike state by clicking the button.
96
+
- Props:
97
+
- idMovie (Required, Number): The unique identifier of the movie for which the dislike button is being displayed.
98
+
- className (Optional, String): Additional CSS class name(s) that can be provided to customize the styling of the button.
99
+
- Usage: the DislikedMovieButton is used within a MovieDetails component, where idMovie is set to the unique identifier of the movie being displayed. The optional className prop is used to customize the styling of the button.
100
+
101
+
This component utilizes the AuthContext to check if the user is logged in before allowing them to dislike a movie. When the button is clicked, it toggles the dislike state and sends a request to the server to update the dislike status.
- Purpose: The FavoriteMovieButton component is a reusable React component designed to represent a button that allows users to mark a movie as a favorite. It interacts with the server to check the current favorite state of the movie and enables users to toggle the favorite state by clicking the button.
104
+
- Props:
105
+
- idMovie (Required, String): The unique identifier of the movie for which the favorite button is being displayed.
106
+
- className (Optional, String): Additional CSS class name(s) that can be provided to customize the styling of the button.
107
+
- Usage: the FavoriteMovieButton is used within a MovieDetails component, where idMovie is set to the unique identifier of the movie being displayed. The optional className prop is used to customize the styling of the button.
- Purpose: The RatingComponent is designed to provide a user interface for selecting a rating using star icons. It uses state to track the selected rating and updates the display dynamically.
110
+
- Props: rating: A state variable that holds the selected rating. It is initially set to null and gets updated when a star is clicked.
- Purpose: The ToWatchMovieButton component serves as a button that allows users to add or remove movies from their "To Watch" list. It displays a tooltip and changes its appearance based on whether the movie is in the "To Watch" list or not.
154
113
- Props:
155
-
- Usage:
156
-
- Component B
157
-
- ...
158
-
159
-
### State Management <aname="state-management"></a>
160
-
161
-
Explain how state is managed in the frontend, whether through local state, Redux, or other state management tools.
162
-
163
-
### Routing <aname="routing"></a>
164
-
165
-
Document how routing is implemented in the React app.
166
-
167
-
### API Integration <aname="api-integration"></a>
168
-
169
-
Provide details on how the frontend integrates with backend APIs, including example API calls.
170
-
171
-
## Mobile App (Java Android) <aname="mobile-app"></a>
172
-
173
-
### Architecture <aname="architecture"></a>
174
-
175
-
Explain the overall architecture of the Android app, including activities, fragments, and any architectural patterns
176
-
used (e.g., MVVM, MVP).
177
-
178
-
### Activity and Fragment Documentation <aname="activity-and-fragment-documentation"></a>
179
-
180
-
Document each Android activity and fragment, explaining their roles and interactions.
181
-
182
-
- Activity A
183
-
- Roles:
184
-
- Interactions:
185
-
- Fragment B
186
-
- ...
114
+
- toWatch: A state variable that holds whether the movie is in the "To Watch" list. It is initially set to false and gets updated when the user clicks the button.
115
+
- isLoggedIn: The component uses the AuthContext to check if the user is logged in.
- Purpose: The WatchMovieButton component serves as a button that allows users to mark a movie as watched. It displays a tooltip and changes its appearance based on whether the movie has been watched or not.
118
+
- Props:
119
+
- watched: A state variable that holds whether the movie has been watched. It is initially set to false and gets updated when the user clicks the button.
120
+
- isHovered: A state variable that holds whether the button is being hovered. It is used to determine the button's appearance during hover.
121
+
- isClicked: A state variable that holds whether the button has been clicked. It is used to determine the button's appearance after being clicked.
Describe how the app handles network requests, including API calls and handling responses.
152
+
Service is using external [TMDB APi](https://developer.themoviedb.org/reference/intro/getting-started) for several operations such as poster and movie info fetching etc.
191
153
192
-
### Data Persistence <aname="data-persistence"></a>
Explain the process of deploying the React.js frontend.
170
+
Both front and back end are deployed on remote linux server provided by [UAM WMI](https://wmi.amu.edu.pl/en)
209
171
210
-
#### Mobile App Deployment <aname="mobile-app-deployment"></a>
172
+
Server information and connection credentials can be found [Here](Documentation%2FDeploy%2FNowa_maszyna_wirtualna_Helpdesk_WMI_Biuro_Obs%3Fugi_Klienta.pdf)
173
+
#### Mobile App Deployment
211
174
212
-
Provide guidelines for packaging and distributing the Android mobile app.
175
+
Android app is deployed to [Google Play](https://play.google.com/store/apps?hl=en&gl=US&pli=1)
0 commit comments