├── twitter-emulation-spring-boot-angular-web
├── src
│ ├── assets
│ │ └── .gitkeep
│ ├── app
│ │ ├── app.component.css
│ │ ├── app.component.html
│ │ ├── shared
│ │ │ ├── models
│ │ │ │ ├── user.model.ts
│ │ │ │ ├── account.model.ts
│ │ │ │ ├── tweet.model.ts
│ │ │ │ ├── account-statistics.model.ts
│ │ │ │ └── user-state.model.ts
│ │ │ ├── guards
│ │ │ │ └── authentication.guard.ts
│ │ │ └── services
│ │ │ │ ├── tweet.service.ts
│ │ │ │ ├── validation.service.ts
│ │ │ │ └── follower.service.ts
│ │ ├── modules
│ │ │ ├── message
│ │ │ │ ├── non-validation-message.component.html
│ │ │ │ ├── message.model.ts
│ │ │ │ ├── message.component.html
│ │ │ │ ├── validation-messages.component.html
│ │ │ │ ├── non-validation-message.component.ts
│ │ │ │ ├── validation-messages.component.ts
│ │ │ │ ├── message.module.ts
│ │ │ │ ├── message.service.ts
│ │ │ │ └── message.component.ts
│ │ │ ├── unknown
│ │ │ │ ├── not-found.component.html
│ │ │ │ ├── not-found.component.ts
│ │ │ │ └── unknown.module.ts
│ │ │ ├── general
│ │ │ │ ├── autofocus.directive.ts
│ │ │ │ ├── general.module.ts
│ │ │ │ └── equal-validator.directive.ts
│ │ │ ├── home
│ │ │ │ ├── home-account.component.html
│ │ │ │ ├── status-info.component.html
│ │ │ │ ├── status-info.component.ts
│ │ │ │ ├── home.resolver.ts
│ │ │ │ ├── home-tweets.component.html
│ │ │ │ ├── home.component.html
│ │ │ │ ├── home.component.ts
│ │ │ │ ├── home-tweets.component.ts
│ │ │ │ ├── home-account.component.ts
│ │ │ │ ├── top-bar.component.ts
│ │ │ │ ├── account.component.ts
│ │ │ │ ├── tweets.component.ts
│ │ │ │ ├── followers.component.ts
│ │ │ │ ├── following.component.ts
│ │ │ │ ├── top-bar.component.html
│ │ │ │ ├── search.component.ts
│ │ │ │ ├── home.module.ts
│ │ │ │ └── home-child.ts
│ │ │ ├── profile
│ │ │ │ ├── delete-account.component.html
│ │ │ │ ├── profile.module.ts
│ │ │ │ ├── delete-account.component.ts
│ │ │ │ └── profile.component.ts
│ │ │ ├── login
│ │ │ │ ├── login.module.ts
│ │ │ │ ├── login.component.ts
│ │ │ │ └── login.component.html
│ │ │ ├── tweet
│ │ │ │ ├── tweet.module.ts
│ │ │ │ ├── new-tweet.component.ts
│ │ │ │ └── new-tweet.component.html
│ │ │ └── registration
│ │ │ │ ├── registration.module.ts
│ │ │ │ └── registration.component.ts
│ │ └── app.component.ts
│ ├── environments
│ │ ├── environment.prod.ts
│ │ └── environment.ts
│ ├── favicon.ico
│ ├── tsconfig.app.json
│ ├── tsconfig.spec.json
│ ├── index.html
│ ├── main.ts
│ ├── test.ts
│ ├── karma.conf.js
│ └── styles.scss
├── proxy.conf.js
├── e2e
│ ├── tsconfig.e2e.json
│ ├── src
│ │ └── app.po.ts
│ └── protractor.conf.js
├── .editorconfig
├── tsconfig.json
├── .gitignore
├── README.md
├── eslint.config.js
├── pom.xml
└── package.json
├── twitter-emulation-spring-boot-react-web
├── src
│ ├── assets
│ │ └── .gitkeep
│ ├── vite-env.d.ts
│ ├── common
│ │ ├── models
│ │ │ ├── User.ts
│ │ │ ├── Message.ts
│ │ │ ├── Account.ts
│ │ │ ├── Tweet.ts
│ │ │ ├── AccountStatistics.ts
│ │ │ └── UserState.ts
│ │ ├── ReactUtils.tsx
│ │ ├── authentication
│ │ │ ├── AuthContextType.ts
│ │ │ ├── RequireAuth.tsx
│ │ │ └── AuthProvider.tsx
│ │ ├── validation
│ │ │ ├── ValidationContext.ts
│ │ │ ├── ValidationMessage.tsx
│ │ │ ├── ValidationMessages.tsx
│ │ │ ├── ValidatableTextarea.tsx
│ │ │ └── ValidatableInput.tsx
│ │ ├── ReactRouterAdapter.ts
│ │ ├── AxiosDateReviver.ts
│ │ └── services
│ │ │ ├── TweetService.ts
│ │ │ └── FollowerService.ts
│ ├── setupTests.ts
│ ├── home
│ │ ├── Loading.tsx
│ │ ├── AnonymousMain.tsx
│ │ ├── AccountList.tsx
│ │ ├── TweetList.tsx
│ │ ├── Search.tsx
│ │ ├── StatusInfo.tsx
│ │ ├── Tweets.tsx
│ │ ├── Followers.tsx
│ │ ├── Following.tsx
│ │ ├── Main.tsx
│ │ ├── Home.tsx
│ │ └── StatusInfo.test.tsx
│ ├── index.css
│ ├── unknown
│ │ └── NotFoundComponent.tsx
│ ├── message
│ │ ├── NonValidationMessageText.tsx
│ │ └── MessageService.ts
│ ├── App.scss
│ └── main.tsx
├── public
│ └── favicon.ico
├── e2e
│ ├── jest-puppeteer.config.ts
│ ├── jest.config.ts
│ └── tests
│ │ ├── app.po.ts
│ │ └── App.test.ts
├── tsconfig.json
├── .gitignore
├── index.html
├── tsconfig.node.json
├── tsconfig.app.json
├── vite.config.ts
├── eslint.config.js
├── pom.xml
└── README.md
├── .gitignore
├── images
└── screenshot.png
├── documents
├── twitter-emulation.tdl
└── twitter-emulation.epgz
├── twitter-emulation-common
└── src
│ ├── test
│ ├── resources
│ │ ├── clean-h2.sql
│ │ ├── clean-oracledb.sql
│ │ └── logback-test.xml
│ └── java
│ │ └── acme
│ │ └── twitter
│ │ └── dao
│ │ ├── utils
│ │ ├── TestSupport.java
│ │ ├── H2TestSupport.java
│ │ └── TestUtils.java
│ │ ├── H2TweetDaoTest.java
│ │ ├── H2AccountDaoTest.java
│ │ ├── H2FollowerDaoTest.java
│ │ ├── OracleDatabaseTweetDaoTest.java
│ │ ├── OracleDatabaseAccountDaoTest.java
│ │ └── OracleDatabaseFollowerDaoTest.java
│ └── main
│ ├── java
│ └── acme
│ │ └── twitter
│ │ ├── dao
│ │ ├── exception
│ │ │ ├── AccountException.java
│ │ │ ├── AccountExistsException.java
│ │ │ ├── AccountNotExistsException.java
│ │ │ └── AccountNotAllowedException.java
│ │ ├── TweetDao.java
│ │ ├── AccountRowMapper.java
│ │ ├── AccountDao.java
│ │ ├── FollowerDao.java
│ │ └── TweetRowMapper.java
│ │ ├── web
│ │ ├── SearchForm.java
│ │ ├── TweetForm.java
│ │ ├── validation
│ │ │ ├── PasswordsMatchValidator.java
│ │ │ └── PasswordsMatch.java
│ │ └── AccountForm.java
│ │ ├── service
│ │ ├── TweetService.java
│ │ ├── FollowerService.java
│ │ ├── AccountService.java
│ │ ├── TweetServiceImpl.java
│ │ └── FollowerServiceImpl.java
│ │ ├── domain
│ │ ├── Account.java
│ │ ├── AccountStatistics.java
│ │ ├── Tweet.java
│ │ └── AbstractAccount.java
│ │ └── config
│ │ └── DevelopmentDataConfig.java
│ └── resources
│ ├── ValidationMessages.properties
│ ├── schema-h2.sql
│ ├── schema-oracledb.sql
│ └── logback.xml
├── twitter-emulation-spring-boot-common-server
└── src
│ ├── test
│ ├── resources
│ │ └── clean-h2.sql
│ └── java
│ │ └── acme
│ │ └── twitter
│ │ └── util
│ │ ├── JsonUtil.java
│ │ └── TestUtils.java
│ └── main
│ ├── java
│ └── acme
│ │ └── twitter
│ │ ├── dto
│ │ ├── AccountStatisticsDto.java
│ │ ├── TweetDto.java
│ │ └── AccountDto.java
│ │ ├── config
│ │ ├── SwaggerConfig.java
│ │ ├── CookieCsrfFilter.java
│ │ ├── WebConfig.java
│ │ └── ProductionDataConfig.java
│ │ ├── App.java
│ │ └── controller
│ │ ├── AuthenticationController.java
│ │ ├── RestErrorAttributes.java
│ │ └── RestResponseEntityExceptionHandler.java
│ └── resources
│ └── application.yml
├── twitter-emulation-spring-boot-admin
└── src
│ └── main
│ ├── resources
│ └── application.yml
│ └── java
│ └── acme
│ └── twitter
│ └── admin
│ ├── App.java
│ └── ServletInitializer.java
├── twitter-emulation-spring-boot-jsp
└── src
│ └── main
│ ├── resources
│ ├── application.yml
│ └── static
│ │ └── css
│ │ └── style.css
│ ├── java
│ └── acme
│ │ └── twitter
│ │ ├── App.java
│ │ └── config
│ │ └── ProductionDataConfig.java
│ └── webapp
│ └── WEB-INF
│ └── views
│ ├── deleteAccountForm.jsp
│ ├── newTweetForm.jsp
│ ├── accountInfo.jsp
│ ├── searchForm.jsp
│ ├── follow.jsp
│ └── registrationForm.jsp
├── .github
├── mergify.yml
├── dependabot.yml
└── workflows
│ ├── deploy.yml
│ ├── sonar.yml
│ └── build.yml
├── twitter-emulation-distrib
├── runme.sh
├── whatsnew.txt
├── runme.bat
├── readme.txt
├── assembly-react.xml
└── assembly-angular.xml
├── twitter-emulation-spring-mvc-jsp
├── src
│ └── main
│ │ ├── java
│ │ └── acme
│ │ │ └── twitter
│ │ │ └── config
│ │ │ ├── SecurityWebInitializer.java
│ │ │ ├── WebInitializer.java
│ │ │ ├── ProductionDataConfig.java
│ │ │ └── RootConfig.java
│ │ └── webapp
│ │ ├── WEB-INF
│ │ └── views
│ │ │ ├── deleteAccountForm.jsp
│ │ │ ├── newTweetForm.jsp
│ │ │ ├── accountInfo.jsp
│ │ │ ├── searchForm.jsp
│ │ │ ├── follow.jsp
│ │ │ └── registrationForm.jsp
│ │ └── css
│ │ └── style.css
└── etc
│ └── jetty.xml
├── twitter-emulation-spring-boot-react-server
└── src
│ └── main
│ └── resources
│ └── banner.txt
├── twitter-emulation-spring-boot-angular-server
└── src
│ └── main
│ └── resources
│ └── banner.txt
└── .gitattributes
/twitter-emulation-spring-boot-angular-web/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/twitter-emulation-spring-boot-react-web/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/twitter-emulation-spring-boot-angular-web/src/app/app.component.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | *.ipr
3 | *.iws
4 | target/
5 | .idea/
6 | logs/
7 |
--------------------------------------------------------------------------------
/images/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbelob/twitter-emulation/HEAD/images/screenshot.png
--------------------------------------------------------------------------------
/twitter-emulation-spring-boot-react-web/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
| 8 | {{account.description}} @{{account.username}} 9 | | 10 | 11 | 12 | } 13 |
Are you sure to delete account '
18 | 19 | 20 |
21 |Are you sure to delete account '
18 | 19 | 20 |
21 |18 | 19 | 20 |
21 |18 | 19 | 20 |
21 || 22 | {account.description} @{account.username} 23 | | 24 |