[SpringBoot/Vue.js Project] Blog
Develop an Web Application from start to finish! (with Oracle Cloud, Spring Boot, Vue.js)
1. Requirements
Project Objectives
- Develop an Web Application that works as a personal Blog.
Specification
- Article, Category CRUD.
- Parent/Child relationships in categories.
- Show projects by year.
- Backend API -> Frontend.
- Docker.
2. Structure
- Database: Oracle ATP Database, (Partial) Mongo DB
- Backend: SpringBoot
- Frontend: Node.js, Vue.js
3. Function
Backend
: There are three APIs that hand over data from ATP Database to frontend.
Menu- One
Menuis consisted of several(or one)Article. Menuhas Parent/Child relationship. (ex. Computer Science Menu - iOS/Android Menu)
- One
Article- One
Articleis a page of writing.
- One
Project- Project is the has information(ex. started date, ended date, project title…) about previously conducted projects.
ProjectAPI is mainly used on the homepage.
Frontend
: There are five main pages. (+ one sidebar)
- Main features and design were implemented using
Bootstrap-vue. - Axios used to call Springboot APIs.
4. Implementation
Backend
Implemented
- Basic Settings
application.propertiesfile: See Code…
- Packages
- 5 packages for basic functions have been developed.
- Two packages are for setting:
ApiResponseandConfig. - The other packages are for API:
ArticleItem,MenuItemandProjectItem.
- Two packages are for setting:
-
Except
ConfigandApiResponsepackage, one package consists ofItem,Adapter,Controller,Repository,Request,ResponseandService.
- 5 packages for basic functions have been developed.
-
Configpackage- This package is for the Database, Frontend and (+Security) connection settings.
- Class:
MongoConfig,OracleConfig,WebConfig - Detailed implementation of the
Configpackage: See Code…
ApiReseponsepackage- This class is for the abstract
ApiResponse. - API Response classes in other main three packages’ API Response classes are inherited from this Abstract.
ApiReseponseAbstart: See Code..
- This class is for the abstract
ArticleItem,MenuItem,ProjectItempackages- One package consists of 6 classes and 1 interface:
Item,Repository,Service,Adapter,Controller,Request,Response. ItemClass: Model class.AdapterClass:ItemRespoenseandItemmethods exist to build object.RepositoryInterface: Send queries to Database.ServiceClass: SendItemto browser. (get,getAll,create,update,deletemethods)ControllerClass: URL resolution.ResponseandRequestClass- See Code…
- One package consists of 6 classes and 1 interface:
To Do / Ongoing
- Membership related parts:
Securitypackage,SecurityConfigClass. - CI/CD with Docker!
Frontend
Implemented
- Main three Pages implemented. Screenshots of the pages are at the below.
Home.vue: Projects and Articles.Posts.vue: Entire articles with Menu(ex. Physics, Computer Science).Aricle.vue: Descriptions.
To Do / Ongoing
Adminpage for the Blog. (This shoud be linked with the articleEdit, menuEdit pages.)
5. Result
v1.0.0
- Backend: Finish CRUD APIs for the Blog’s Article, Menu and Project.
- Frontend: Development of pages for visitor completed.(include edit article/menu which is not below screenshots.)
The above page is the acutually working, but Oracle Cloud does not support free domain services in my region, I can’t attach Blog URL.
Comments