The Journal Management System (JMS) is a web-based application designed to streamline the process of managing
academic and professional journals.
It provides an end-to-end solution for authors, reviewers, and editors, making the submission, review, and publication
process efficient and transparent.
- 📑 Manuscript submission and tracking
- 📝 Peer review workflow with reviewer assignments
- 🔍 Plagiarism check integration (optional)
- 🔄 Revision management and feedback system
- 📅 Publication scheduling and issue management
- 👥 Role-based access (Author, Reviewer, Editor, Admin)
- 📊 Dashboard and analytics for journal performance
- Frontend: React / Next.js
- Backend: Node.js / Express
- Database: PostgreSQL / MySQL (with Prisma ORM)
- Authentication: JWT / OAuth2
- Deployment: Docker + Vercel / AWS
This is the recommended way to run the project for development. It automatically sets up the Next.js application and a PostgreSQL database in isolated containers.
- Docker
- Docker Compose
This project uses a .env file for environment variables. To get started, create your own by copying the example file:
cp .env.example .envThe default values in .env.example are pre-configured to work with the docker-compose.yml setup, so you don't need
to change anything to get started.
From the root directory, build the Docker images and start the services in the background (detached mode):
docker-compose up --build -dThe very first time you launch the application, its database will be empty. You need to apply your Prisma schema to create the necessary tables.
Run the following command to execute the database migrations:
docker-compose exec app pnpm prisma migrate devNote: You only need to run this command again if you make changes to your
prisma/schema.prismafile.
You're all set! 🥳
- Next.js Application: http://localhost:3000
- PostgreSQL Database: Accessible at
localhost:5432from your host machine (for tools like TablePlus or DBeaver).
-
Stop all services:
docker-compose down
-
View logs for all services:
docker-compose logs -f
-
View logs for a specific service (e.g., the app):
docker-compose logs -f app
-
Run a one-off command inside the app container:
docker-compose exec app <your-command>
Example:
docker-compose exec app pnpm prisma studio
If you prefer not to use Docker, you can run the project locally. This requires you to manage the PostgreSQL database instance yourself.
- Node.js (version ^22.14.0 or as specified in
package.json) - pnpm
- A running PostgreSQL database instance
-
Install dependencies:
pnpm install
-
Set up your
.envfile: Create a.envfile and update theDATABASE_URLto point to your local PostgreSQL instance. -
Run database migrations:
pnpm prisma migrate dev
-
Run the development server:
pnpm dev
The application will be available at: http://localhost:3000
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js. Check out the Next.js deployment documentation for more details.