The application emulates the main features of Twitter:
- login, logout;
- account management (registration, editing, deleting, search by substring);
- main page (account properties, timeline, tweets, following, followers);
- tweet creating;
- follow/unfollow.
in several ways:
- Spring MVC, JSP
- Spring Boot, JSP
- Spring Boot, React
- Spring Boot, Angular
- JDK 21+
- Apache Maven 3.9.0+
- Node.js 22.12.0+ (optional)
- Docker (optional)
-
From the command line with Maven (in the root directory):
mvn clean install -Dmaven.test.skip=true
-
Change directory:
cd twitter-emulation-spring-mvc-jsp
-
From the command line run one of the commands with Maven:
mvn jetty:run
(H2)
mvn jetty:run -P development
(H2)
mvn jetty:run -P production
(Oracle Database)
(Oracle Database connection properties:etc/jetty.xml
) -
Access the deployed web application at:
-
Log in with existing accounts (
jsmith/password
,jdoe/password
,rroe/password
,alone/password
) or create a new account
-
From the command line with Maven (in the root directory):
mvn clean install -Dmaven.test.skip=true
-
Change directory:
cd twitter-emulation-spring-boot-jsp
-
From the command line run one of the commands with Maven:
mvn spring-boot:run
(H2)
mvn spring-boot:run -P development
(H2)
mvn spring-boot:run -P production
(Oracle Database)
(Oracle Database connection properties:src/main/resources/application.yml
) -
Access the deployed web application at:
-
Log in with existing accounts (
jsmith/password
,jdoe/password
,rroe/password
,alone/password
) or create a new account
-
From the command line with Maven (in the root directory):
mvn clean install -Dmaven.test.skip=true
-
Change directory:
cd twitter-emulation-spring-boot-react-server
-
From the command line run one of the commands with Maven:
mvn spring-boot:run
(H2)
mvn spring-boot:run -P development
(H2)
mvn spring-boot:run -P production
(Oracle Database)
(Oracle Database connection properties:src/main/resources/application.yml
) -
Access the deployed web application at:
-
Log in with existing accounts (
jsmith/password
,jdoe/password
,rroe/password
,alone/password
) or create a new account
-
Install Node.js
-
Run to ensure that npm is working:
npm -v
-
Change directory:
cd twitter-emulation-spring-boot-react-server
-
From the command line run one of the commands with Maven:
mvn spring-boot:run
(H2)
mvn spring-boot:run -P development
(H2)
mvn spring-boot:run -P production
(Oracle Database)
(Oracle Database connection properties:src/main/resources/application.yml
) -
Change directory:
cd twitter-emulation-spring-boot-react-web
-
From the command line with npm:
npm start
-
Access the deployed web application at:
-
Log in with existing accounts (
jsmith/password
,jdoe/password
,rroe/password
,alone/password
) or create a new account
-
From the command line with Maven (in the root directory):
mvn clean package -DskipTests
-
Change directory:
cd twitter-emulation-distrib/target
-
Find distribution file:
twitter-emulation-react-<version>.zip
-
Extract files from ZIP, for example:
unzip twitter-emulation-react-<version>.zip
-
Change directory:
cd twitter-emulation-react-<version>
-
Run:
runme.bat
(Windows)
runme.sh
(macOS or Linux) -
Access the running web application at:
-
Log in with existing accounts (
jsmith/password
,jdoe/password
,rroe/password
,alone/password
) or create a new account
-
From the command line with Maven (in the root directory):
mvn clean install -Dmaven.test.skip=true
-
Change directory:
cd twitter-emulation-spring-boot-angular-server
-
From the command line run one of the commands with Maven:
mvn spring-boot:run
(H2)
mvn spring-boot:run -P development
(H2)
mvn spring-boot:run -P production
(Oracle Database)
(Oracle Database connection properties:src/main/resources/application.yml
) -
Access the deployed web application at:
-
Log in with existing accounts (
jsmith/password
,jdoe/password
,rroe/password
,alone/password
) or create a new account
-
Install Node.js
-
Run to ensure that npm is working:
npm -v
-
Change directory:
cd twitter-emulation-spring-boot-angular-server
-
From the command line run one of the commands with Maven:
mvn spring-boot:run
(H2)
mvn spring-boot:run -P development
(H2)
mvn spring-boot:run -P production
(Oracle Database)
(Oracle Database connection properties:src/main/resources/application.yml
) -
Change directory:
cd twitter-emulation-spring-boot-angular-web
-
From the command line with npm:
npm start
-
Access the deployed web application at:
-
Log in with existing accounts (
jsmith/password
,jdoe/password
,rroe/password
,alone/password
) or create a new account
-
From the command line with Maven (in the root directory):
mvn clean package -DskipTests
-
Change directory:
cd twitter-emulation-distrib/target
-
Find distribution file:
twitter-emulation-angular-<version>.zip
-
Extract files from ZIP, for example:
unzip twitter-emulation-angular-<version>.zip
-
Change directory:
cd twitter-emulation-angular-<version>
-
Run:
runme.bat
(Windows)
runme.sh
(macOS or Linux) -
Access the running web application at:
-
Log in with existing accounts (
jsmith/password
,jdoe/password
,rroe/password
,alone/password
) or create a new account
-
Change directory:
cd twitter-emulation-spring-boot-admin
-
From the command line with Maven:
mvn spring-boot:run
-
Change directory:
cd twitter-emulation-spring-boot-react-server
or
cd twitter-emulation-spring-boot-angular-server
-
From the command line with Maven:
mvn spring-boot:run
-
Access Spring Boot Admin application at:
-
Log in with existing account
admin/password
-
Install Docker (optional, only for Oracle Database testing)
-
Change directory:
cd twitter-emulation-common
-
From the command line run one of the commands with Maven:
mvn test
(H2)
mvn test -P development
(H2)
mvn test -P production
(Oracle Database)
-
Change directory:
cd twitter-emulation-spring-boot-common-server
-
From the command line with Maven:
mvn test
-
Change directory:
cd twitter-emulation-spring-boot-react-web
-
From the command line with npm:
npm run test
-
Change directory:
cd twitter-emulation-spring-boot-angular-web
-
From the command line with npm:
npm run test
-
Change directory:
cd twitter-emulation-spring-boot-react-web
-
From the command line with npm:
npm run e2e
-
Change directory:
cd twitter-emulation-spring-boot-angular-web
-
From the command line with npm:
npm run e2e
- Spring:
- React
- Angular
- H2 or Oracle Database (data storage)
- Swagger (REST API documentation)
- JUnit (Java unit testing)
- Mockito (mocking for unit tests in Java)
- TestContainers (testing with Docker containers)
- Jest (JavaScript unit testing)
- React Testing Library (JavaScript unit testing for React)
- Jasmine (JavaScript unit testing)
- Puppeteer (JavaScript end-to-end testing)
- Protractor (end-to-end testing for Angular)
- Vitest (JavaScript testing by Vite)
- GitHub Actions (automation of workflows)
- Dependabot (automated dependency updates)
- Mergify (automated merging of pull requests)
- ToDoList 7.1.5+ (planning)
- Pencil 3.0.4+ (GUI prototyping)
- Violet 0.21.1 (UML diagrams)
The evolution of creating web applications in Java (Russian)