Bug tracking app made with PERN + TS
This bug tracker is a modified version of the open source one made by amand33p
- ReactJS - Frontend framework
- Redux w/ hooks - State management library
- Redux Toolkit - Toolset for efficient Redux development
- Redux Thunk - Middleware which allows action creators to return a function
- React Router - Library for general routing & navigation
- React Hook Form - Library for flexible & extensible forms
- Material-UI w/ lots of CSS customisations - UI library
- Yup - Form validation tool
- date-fns - Library for manipulating/formatting of timestamps
- Cypress - Frontend testing tool framework
- Node.js - Runtime environment for JS
- Express.js - Node.js framework, makes process of building APIs easier & faster
- PostgreSQL - Opens-source SQL database to store data
- TypeORM - TS-based ORM for mostly SQL-based databases
- JSON Web Token - A standard to secure/authenticate HTTP requests
- Bcrypt.js - For hashing passwords
- Crypto - For generating random passwords
- Nodemailer - For email notifications
- Dotenv - To load environment variables from a .env file
- Multer - For file (image/gif/video/JSON) storage
- ReCAPTCHA - Library to distinguish humans and automated access to websites
- Node Fetch - For making API Requests
- Synchronization with Github Issues through REST API (issues, assignments, comments)
- Authentication (login/register w/ username, password & optional email adress)
- CRUD bugs, with title, description, priority, category & optional file (image, gif, video, JSON)
- Email notifications (can be turned off)
- Anyone can add a bug and leave notes
- Users can create an account to receive email notifications
- Admins can add/remove other admins, delete, close, update, assign bugs, download JSON files associated to them and link the tracker to their Github account
- ReCAPTCHA test to access the admin invite verification page
- Sort bugs by various parameters like priority, recently closed etc.
- Filter bugs by name/title/assignments & other parameters
- CRUD notes, for guiding other members with possibility to reply
- Descriptive color indicators for bug priority & status
- Error management with descriptive messages
- Toast notifications for actions: creating projects, removing membes etc.
- Loading spinners for fetching processes
- Dark mode toggle w/ local storage save
- Proper responsive UI for all screens
If you are a VariaMos developer you'll want to read the AdminREADME file.
Create a .env file in server directory and add the following:
PORT = 3005
Open client/src/backendUrl.js & change "backend" variable to "http://localhost:3005"
Run client development server:
cd client
npm install
npm start
Open ormconfig.js & update the local PostgreSQL credentials to match with yours.
To compile the project, go to server dir & run this command:
npx tsc --project .\tsconfig.json
To run the migrations, go to server dir & run this command:
npm run typeorm migration:run
To clear the database, go to server dir & run this command:
npm run typeorm schema:drop
Run backend development server:
cd server
npm install
npm run dev
If you need to use Docker, do the following:
To build the container, run this command in the root directory:
docker-compose build
To run it, run this command:
docker-compose up
You can find more documentation on the wiki.
Here you can check the VariaMos application and website.