A full-stack paper submission and management system consisting of a React frontend and a Node.js/Express backend.
The project is divided into two main parts:
client/: Frontend application built with React + Vite + Mantineserver/: Backend application built with Node.js + Express + MySQL
- User Authentication (JWT)
- Paper Submission & Management
- Review System
- Role-based Access Control (Authors, Reviewers, Administrators)
- File Upload Support
- Docker Support
- React
- Vite
- Mantine UI
- React Query
- React Router
- Axios
- i18next (Internationalization)
- Node.js
- Express
- MySQL
- JWT Authentication
- Multer (File Uploads)
- Node.js (v16+)
- MySQL
- Docker & Docker Compose (Optional)
Note: This project uses Git submodules for the frontend code. When cloning for the first time, add the
--recurse-submodulesflag to automatically pull submodules.
- Clone the repository (with submodules):
git clone --recurse-submodules https://github.com/ZajacMo/paper-submission-system.git
cd paper-submission-system-
Make sure Docker and Docker Compose are installed
-
Start the services:
docker-compose up --buildThe services will be available at:
- Frontend: http://localhost:21743
- Backend API: http://localhost:5000
Note: For manual installation, submodules need to be cloned separately:
git clone --recurse-submodules https://github.com/ZajacMo/paper-submission-system.gitOr after cloning, run:
git submodule init git submodule update
- Navigate to the server directory:
cd server- Install dependencies:
npm install-
Configure environment variables: Create a
.envfile based on the configuration incompose.yamlor your local setup. -
Initialize Database: Execute the SQL scripts located in
server/SQL/to set up your MySQL database. -
Start the server:
npm start- Navigate to the client directory:
cd client- Install dependencies:
npm install- Start the development server:
npm run dev![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Copyright 2025 Zajac Mo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.









