A full-stack Journal Management System designed to simplify the process of manuscript submission, review, and publication workflow management. The application provides dedicated interfaces for authors, reviewers, editors, and administrators to manage the complete journal publishing lifecycle.
The Journal Management System enables authors to submit manuscripts, track publication status, reviewers to evaluate submissions, and editors to manage review decisions efficiently through a secure web-based platform.
The project follows a modern full-stack architecture with an Angular frontend and a Spring Boot backend secured using JWT authentication.
- User registration and login
- JWT based authentication
- Access token and refresh token support
- Role based access control
- Secure logout functionality
- Author dashboard
- Submit manuscripts
- Upload research papers
- Track manuscript status
- View submitted publications
- Resubmission workflow
- Reviewer dashboard
- Assigned manuscript review
- Paper evaluation workflow
- Review decision submission
- Editor dashboard
- Manuscript management
- Reviewer assignment
- Publication decision handling
- Editorial board management
- Current issue management
- Journal information pages
- Dynamic tables and pagination
- Document preview support
- Responsive UI
- Angular 15
- TypeScript
- Angular Material
- Bootstrap 5
- RxJS
- SCSS
- HTML5/CSS3
- Java 17
- Spring Boot 3
- Spring Security
- Spring Data JPA
- Spring HATEOAS
- Hibernate
- JWT Authentication
- Lombok
- Gradle
- MySQL
Journals
│
├── Frontend/
│ ├── src/
│ │ ├── app/
│ │ │
│ │ ├── authentication/
│ │ │ ├── login
│ │ │ ├── register
│ │ │ └── profile
│ │ │
│ │ ├── services/
│ │ ├── author-dashboard/
│ │ ├── reviewer-dashboard/
│ │ ├── editor-dashboard/
│ │ └── manuscript modules
│ │
│ ├── package.json
│ └── angular.json
│
└── Backend/
├── src/main/java/com/project
│
├── controllers/
├── services/
├── repository/
├── entity/
├── configs/
├── utils/
└── ProjectApplication.java
Install the following:
- Node.js
- Angular CLI
- Java 17+
- MySQL
- Gradle
Navigate to backend:
cd BackendConfigure MySQL database:
Create a database:
CREATE DATABASE Journal;Update database configuration:
spring.datasource.url=jdbc:mysql://localhost:3306/Journal
spring.datasource.username=your_username
spring.datasource.password=your_passwordRun backend:
Linux/Mac:
./gradlew bootRunWindows:
gradlew.bat bootRunBackend runs on:
http://localhost:8081
Navigate to frontend:
cd FrontendInstall dependencies:
npm installStart Angular application:
npm startor
ng serveFrontend runs on:
http://localhost:4200
The backend uses JWT authentication.
Authentication flow:
User Login
|
↓
Generate JWT Token
|
↓
Attach token in requests
|
↓
Spring Security validates token
|
↓
Access protected APIs
- Register user
- Authenticate user
- Generate JWT tokens
- Refresh authentication
- Logout
Author
|
↓
Submit Manuscript
|
↓
Editor Review
|
↓
Reviewer Assignment
|
↓
Reviewer Feedback
|
↓
Decision
|
↓
Publication
- Home Screen
- Login Page
- Register Page
- Author Dashboard
- Reviewer Dashboard
- Editor Dashboard
- Manuscript Dashboard
- Upload Manuscript
- Current Issues
- Editorial Board
- User Profile
- Email notification system
- Cloud document storage
- Advanced analytics dashboard
- Search and filtering improvements
- CI/CD deployment pipeline
- Docker containerization