Skip to content

Commit 6a279cb

Browse files
committed
trying to integrate spring security
0 parents  commit 6a279cb

File tree

95 files changed

+4051
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+4051
-0
lines changed

.mvn/wrapper/maven-wrapper.jar

58.5 KB
Binary file not shown.

.mvn/wrapper/maven-wrapper.properties

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.7/apache-maven-3.8.7-bin.zip
18+
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar

README.md

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Tracking Media Collection
2+
3+
A simple java backend project for tracking servies (i.e. movies/series) using SpringBoot + Hibernate
4+
5+
## Features
6+
7+
## Things implemented/used :
8+
9+
- 3 Layer architecture (Controller <--> Service <--> Repository[DAO])
10+
- REST Api's for CRUD Operations (Create, Read, Update, Delete)
11+
- REST Api's for Pagination & Sorting
12+
- Using DTO's (for data transfer)
13+
- Validation Handling
14+
- Exception Handling (for proper error message to user)
15+
<!-- - JWT based authentication
16+
- Role based authentication (diff access for admins & users)
17+
- Api's for Login & Register -->
18+
19+
## Technologies/Tools used :
20+
21+
- Spring Boot Java Framework
22+
- Maven Build Tool
23+
- Visual Studio Code IDE
24+
- Apache Tomcat (embedded web server in Spring)
25+
- Spring Core
26+
- Spring Data JPA (Hibernate)
27+
- Mysql Workbench
28+
- Postman Rest Client
29+
<!-- - Swagger
30+
- Spring Security (JWT) -->
31+
32+
## Screenshots
33+
34+
## VSCode
35+
36+
Extensions installed :
37+
38+
- Spring Boot Extension Pack
39+
- Lombok Annotations Support for VS Code
40+
41+
Steps through command pallete (Ctrl+Shift+p) :
42+
43+
- Spring Initializr: Create a Maven Project
44+
- Specific Spring Boot version - 3.0.4
45+
- Specific project language - Java
46+
- groupId - servie
47+
- artifactId - track_servie
48+
- Specific packaging type - Jar
49+
- Specific Java version - 19
50+
- Search for dependencies (reflects in pom.xml file):
51+
- spring-boot-starter-data-jpa
52+
- spring-boot-starter-thymeleaf
53+
- spring-boot-starter-web
54+
- spring-boot-devtools
55+
- mysql-connector-j
56+
- lombok
57+
- spring-boot-starter-validation
58+
- modelmapper
59+
<!-- - spring-boot-starter-security -->
60+
- spring-boot-starter-test (by default)

mvnw.cmd

+188
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
@REM ----------------------------------------------------------------------------
2+
@REM Licensed to the Apache Software Foundation (ASF) under one
3+
@REM or more contributor license agreements. See the NOTICE file
4+
@REM distributed with this work for additional information
5+
@REM regarding copyright ownership. The ASF licenses this file
6+
@REM to you under the Apache License, Version 2.0 (the
7+
@REM "License"); you may not use this file except in compliance
8+
@REM with the License. You may obtain a copy of the License at
9+
@REM
10+
@REM https://www.apache.org/licenses/LICENSE-2.0
11+
@REM
12+
@REM Unless required by applicable law or agreed to in writing,
13+
@REM software distributed under the License is distributed on an
14+
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
@REM KIND, either express or implied. See the License for the
16+
@REM specific language governing permissions and limitations
17+
@REM under the License.
18+
@REM ----------------------------------------------------------------------------
19+
20+
@REM ----------------------------------------------------------------------------
21+
@REM Maven Start Up Batch script
22+
@REM
23+
@REM Required ENV vars:
24+
@REM JAVA_HOME - location of a JDK home dir
25+
@REM
26+
@REM Optional ENV vars
27+
@REM M2_HOME - location of maven2's installed home dir
28+
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29+
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
30+
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31+
@REM e.g. to debug Maven itself, use
32+
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33+
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34+
@REM ----------------------------------------------------------------------------
35+
36+
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37+
@echo off
38+
@REM set title of command window
39+
title %0
40+
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41+
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42+
43+
@REM set %HOME% to equivalent of $HOME
44+
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45+
46+
@REM Execute a user defined script before this one
47+
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48+
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49+
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
50+
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
51+
:skipRcPre
52+
53+
@setlocal
54+
55+
set ERROR_CODE=0
56+
57+
@REM To isolate internal variables from possible post scripts, we use another setlocal
58+
@setlocal
59+
60+
@REM ==== START VALIDATION ====
61+
if not "%JAVA_HOME%" == "" goto OkJHome
62+
63+
echo.
64+
echo Error: JAVA_HOME not found in your environment. >&2
65+
echo Please set the JAVA_HOME variable in your environment to match the >&2
66+
echo location of your Java installation. >&2
67+
echo.
68+
goto error
69+
70+
:OkJHome
71+
if exist "%JAVA_HOME%\bin\java.exe" goto init
72+
73+
echo.
74+
echo Error: JAVA_HOME is set to an invalid directory. >&2
75+
echo JAVA_HOME = "%JAVA_HOME%" >&2
76+
echo Please set the JAVA_HOME variable in your environment to match the >&2
77+
echo location of your Java installation. >&2
78+
echo.
79+
goto error
80+
81+
@REM ==== END VALIDATION ====
82+
83+
:init
84+
85+
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86+
@REM Fallback to current working directory if not found.
87+
88+
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89+
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90+
91+
set EXEC_DIR=%CD%
92+
set WDIR=%EXEC_DIR%
93+
:findBaseDir
94+
IF EXIST "%WDIR%"\.mvn goto baseDirFound
95+
cd ..
96+
IF "%WDIR%"=="%CD%" goto baseDirNotFound
97+
set WDIR=%CD%
98+
goto findBaseDir
99+
100+
:baseDirFound
101+
set MAVEN_PROJECTBASEDIR=%WDIR%
102+
cd "%EXEC_DIR%"
103+
goto endDetectBaseDir
104+
105+
:baseDirNotFound
106+
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107+
cd "%EXEC_DIR%"
108+
109+
:endDetectBaseDir
110+
111+
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112+
113+
@setlocal EnableExtensions EnableDelayedExpansion
114+
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115+
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116+
117+
:endReadAdditionalConfig
118+
119+
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120+
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121+
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122+
123+
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
124+
125+
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126+
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127+
)
128+
129+
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130+
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131+
if exist %WRAPPER_JAR% (
132+
if "%MVNW_VERBOSE%" == "true" (
133+
echo Found %WRAPPER_JAR%
134+
)
135+
) else (
136+
if not "%MVNW_REPOURL%" == "" (
137+
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
138+
)
139+
if "%MVNW_VERBOSE%" == "true" (
140+
echo Couldn't find %WRAPPER_JAR%, downloading it ...
141+
echo Downloading from: %DOWNLOAD_URL%
142+
)
143+
144+
powershell -Command "&{"^
145+
"$webclient = new-object System.Net.WebClient;"^
146+
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147+
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148+
"}"^
149+
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150+
"}"
151+
if "%MVNW_VERBOSE%" == "true" (
152+
echo Finished downloading %WRAPPER_JAR%
153+
)
154+
)
155+
@REM End of extension
156+
157+
@REM Provide a "standardized" way to retrieve the CLI args that will
158+
@REM work with both Windows and non-Windows executions.
159+
set MAVEN_CMD_LINE_ARGS=%*
160+
161+
%MAVEN_JAVA_EXE% ^
162+
%JVM_CONFIG_MAVEN_PROPS% ^
163+
%MAVEN_OPTS% ^
164+
%MAVEN_DEBUG_OPTS% ^
165+
-classpath %WRAPPER_JAR% ^
166+
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
167+
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
168+
if ERRORLEVEL 1 goto error
169+
goto end
170+
171+
:error
172+
set ERROR_CODE=1
173+
174+
:end
175+
@endlocal & set ERROR_CODE=%ERROR_CODE%
176+
177+
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
178+
@REM check for post script, once with legacy .bat ending and once with .cmd ending
179+
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
180+
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
181+
:skipRcPost
182+
183+
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
184+
if "%MAVEN_BATCH_PAUSE%"=="on" pause
185+
186+
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
187+
188+
cmd /C exit /B %ERROR_CODE%

notes

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Base fixed points :
2+
tmdb id is a must have
3+
imdb id is optional
4+
5+
What if imdb id is set as @Id and tmdb id as a normal column
6+
-> then series & movie will have imdb_id as a PK/FK (default) -> no issue
7+
imdb_id will be used for
8+
9+
10+
11+
12+
Issues with tmdb_id
13+
-> tmdb_id can be same for a movie and a series.
14+
Since I want to maintain a common database, I will need to add a letter in id and remove the same while passing it to the 3rd party api
15+
16+
17+
18+
19+
20+
select s1_0.imdb_id,case when s1_1.imdb_id is not null then 1 when s1_2.imdb_id is not null then 2 when s1_0.imdb_id is not null then 0 end,s1_0.backdrop_path,(CASE WHEN EXISTS (SELECT * FROM track_servie.movie m WHERE m.imdb_id = s1_0.imdb_id AND m.watched = 1) THEN 1 ELSE (SELECT CASE WHEN (SELECT COUNT(*) FROM track_servie.episode e WHERE e.series_id=s1_0.id AND e.watched=1)=(SELECT ser.number_of_episodes FROM track_servie.series ser WHERE ser.imdb_id=s1_0.imdb_id) THEN 1 ELSE 0 END) END),s1_0.id,s1_0.original_title,s1_0.overview,s1_0.poster_path,s1_0.status,s1_0.tagline,s1_0.title,s1_1.release_date,s1_1.runtime,s1_1.watched,(SELECT COUNT(*) FROM track_servie.episode e WHERE e.series_id=s1_2.id AND e.watched=1),s1_2.first_air_date,s1_2.last_air_date,s1_2.number_of_episodes,s1_2.number_of_seasons,s1_2.imdb_id,(SELECT CASE WHEN (SELECT COUNT(*) FROM track_servie.episode e WHERE e.series_id=s1_2.id AND e.watched=1)=s1_2.number_of_episodes THEN 1 ELSE 0 END) from servie s1_0 left join movie s1_1 on s1_0.imdb_id=s1_1.imdb_id left join series s1_2 on s1_0.imdb_id=s1_2.imdb_id order by s1_0.title asc limit ?,?];
21+
22+
######################################################################################################################################################
23+
Episode []

0 commit comments

Comments
 (0)