JournalEdit is a MVP for a web platform that connects scientific journal authors with people looking to offer scientific editing. This ensures two things:
- An author whose first language is not English can reduce the time to publish their research.
- An editor with available time (such as a graduate student) can sharpen their editing skills, read more scientific papers and make a bit of money.
The backend is built on some of these technologies:
- Express/Node/Typescript
- TypeORM
- Class-Validator
- APIDoc
The front end (coming soon) will be built with:
- Typescript/React
- Some UI library (Material/Bootstrap?)
To run the code in this project, you'll need the latest stable version of NPM. Upgrade using npm itself, or Node Version Manager, or directly download the installer from npm.
npm install npm@latest -g
To get a local copy up and running please follow these steps. Currently, only the backend exists, with a WIP framework to do basic CRUD:
- Creating users with roles (job creator and job seeker roles are supported)
- Creating and deleting jobs (as a job creator)
- Authentication and sign in/sign out
- Searching and applying for jobs (as a job seeker)
- Commenting on a job
To install, use npm:
npm install
Set environment variables (a .env
file contains basic variables, but some examples follow) for:
- NODE_ENV (eg
development
) - PORT (eg
7000
) - JWT_SECRET (really any string)
Compile the Typescript to Javascript using Webpack and run the service locally (in development mode, the compiler runs with a file tree watcher):
npm run webpack
npm run start
For the backend, some of the API methods are annotated with APIDoc. To view documentation:
- Install APIDocs via:
npm install -g apidoc
- Navigate to the server directory
cd server
- Generate the latest docs
apidoc -i src/ -o doc/
- View the resulting docs
open server/doc/index.html
For testing the backend, use Postman or Insomnia.
Unit tests and integration tests are coming soon (TM).
Abid Hasan - @sabidhasan
Project Link: https://github.com/sabidhasan/JournalEdit
Though the repository is public, pull requests are not welcome at this time.