DEMO: http://anatoliykovalov.ddns.net/Site_Blog_on_JavaEE_war
- Interface : HTML/CSS/JS/Bootstrap/jQuery.
- JavaEE: Servlets, JSP, JSTL.
- Apache Commons : dbcp2, lang3, dbutils, BeanUtils, email, validator.
- Database: MySql.
- Google OAuth.
- Maven, Logback.
- The application is built on MVC design pattern.
- Displaying a list of article categories;
- Displays a list of all articles sorted in descending order of creation time;
- Displays a list of articles for the selected category, sorted in descending order of creation time;
- Search for articles by keyword in the article title and its text. (For simplicity, we mean searching by the exact word or phrase);
- Paginated display of information for the list of articles and search results;
- Displaying information about an article and updating the page-view counter;
- Integration with social services for sharing information about an article;
- Load more comments to an article;
- Writing a new comment to an article;
- Authentication via social networks, as the simplest and most widely used method today, using the example of Google+;
- Import a user profile (name, email, avatar) from Google+ when creating a comment;
- Sending a notification about a new comment to the blog owner's email address;
- Sending a Contact Form request to the blog owner's email address;
- Error handling: 404, runtime errors, data validation;
- Displaying simple pages using the about example.
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/Blog // Format
db.username=**** // Format
db.password=***** // Format
db.pool.initSize=5
db.pool.maxSize=10
social.googleplus.clientId=***** // Format
app.host=http://******* // Format
email.notificationEmail=xxx@mail.com // Format
email.sendTryCount=2
email.smtp.server=smtp.mail.com
email.smtp.port=465
email.fromEmail=xxx@mail.com // Format
email.smtp.username=xxx@mail.com // Format
email.smtp.password=xxx{password application email} // Format
public class Constants {
public static final String CATEGORY_MAP = "CATEGORY_MAP";
public static final int LIMIT_ARTICLES_PER_PAGE = *****; // Format
public static final int LIMIT_COMMENTS_PER_PAGE = *****; // Format
}


