Softneta is a simple demo XML RSS Feed.
Please see Architecture Section for important information about the project.
- Beautiful and Responsive user-interface
- Generating RSS Feed from given URL
- Front-End and Back-End User Data Validation
- Deleting feeds
- Adding new feeds
- Background service to periodically update feed
- Good error handling
- Async services for speed
- Pretty Formatted time
- Feeds sorted according to last upadted (descending)
- Feed Items sorted according to last published
- Nice image display
This application is built with Spring Boot. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
To get a general overview of the Spring Boot architecture, please read more from the Spring Boot Guides.
This project uses the MVCS architecture.
- Models (Data Access Objects) - (src/main/java/com/clintonyeb/SoftnetaDev/models)
- View Layer (JSP)- (src/main/webapp/WEB-INF/views)
- Controller (Coordinator for Views and Models) - (src/main/java/com/clintonyeb/SoftnetaDev/controllers)
- Service Layer (Services controllers) - (src/main/java/com/clintonyeb/SoftnetaDev/services)
The business logic of the application is contained in the src folder of the project folder. Inside the src folder (src/main/java/com/clintonyeb/SoftnetaDev/), there 6 folder and the entry point into the application (src/main/java/com/clintonyeb/SoftnetaDev/Application.java).
There is also include a NodeJS packaging system in the project. This is only needed during development and is required to building the CSS file for the project view files. Once the CSS file is built, it is only required to be rebuilt after changes are made to it.
The Project contains a scheduled service in (src/main/java/com/clintonyeb/SoftnetaDev/services/ScheduledService.java). This service handles waking up an repeated intervals to update feeds in the system.
User are able to add new XML RSS Feeds through a dialog. The webserver then fetches all related feeds items for that feed. The webserver also executes a background service that updates all feed items.
- Java 8
- MySQL
The application was tested using Linux - Debian 9.1, MYSQL version 15.1 and OpendJDK version 1.8.0_171. It is nevertheless expected to work on major platforms.
You need to configure a MYSQL instance to be able to run the application. The application uses an in-mmenory database(h2) for testing, but requires a real database to run.
After you have installed a MYSQL instance: Login and create a username and password for the application to use.
GRANT ALL PRIVILEGES ON *.* TO 'softneta'@'localhost' IDENTIFIED BY 'softnetapassword';This create the default username and a password that the application is already configured with.
If you wish to change the provided username and password, then you will have to change the configurations in (src/main/resources/application.properties).
Finally, create the database that the application requires:
CREATE DATABASE feeds;Download and Build project:
git clone https://github.com/clintonyeb/softnetadev.git
cd softnetadev
./mvnw package
java -jar target/softnetadev.jar
You can then access softneta here: localhost:8080 to view application
- Running as a Packaged Application
After MYSQL is setup, you can run the application from the included jar file.
java -jar target/softnetadev-0.0.1.jar
Visit:
localhost:8080to view application
Note that, the jar file will not work if you changed the MYSQL default username and password. You will need to manually build the jar file again.
- Running from an IDE
For a more involved running, setup your MYSQL instance and provide the username and password in the application.properties configuration file. You can then run your application using the main class (src/main/java/com/clintonyeb/SoftnetaDev/Application.java)
Open the application in your favorite IDE (Intellij Idea, Eclipse, Netbeans, Visual Studio).
Run from the IDE.
- Or you can run it from Maven directly using the Spring Boot Maven plugin. If you do this it will pick up changes that you make in the project immediately (changes to Java source files require a compile as well - most people use an IDE for this):
./mvnw spring-boot:run
Packaging into a jar file
The application can be managed by maven. First install maven: [https://maven.apache.org/install.html] And then from the root directory, run
mvn clean install.
A jar file is generated and put into the target directory.
The application is fully tested. (src/test)
- User management - Login and Registration
- Web Sockets - for instant notifications on RSS Feeds
- Adding more tests
- Improving UI
- Docker support for easy installation
- Bundled Tomcat Version might be different from system Tomcat version. Application will run as long as the API is compatible.



