- clone the project
- install dependencies in the root directory of the project:
npm install - install dependencies in the
frontendsubfolder as above - copy
config-example.jsontoconfig.jsonand customize it - start the backend:
npm start - from the
frontendfolder, run the web server:npm run serve - from the browser connect to http://localhost:8080
- from the frontend directory:
npm run build - from the browser connect to http://localhost:8000 (from configuration)
This project is done for the educational purpose of learning Vue, MongoDB, and my entry to Full-Stack development. It is not meant to be a functional application for others. I am publishing it as a proof of experience. This project was made in 2023 and I learned a lot since then; hence the code might be sloppy and might have deprecated packages.
General description: each Project consists of multiple Tasks and each Task has workers - an array of Person identifiers that is a subset of the Project's members.
Taskschema is equipped withname,project_id,status, andworkersfields.nameis a non-empty title of the task,project_idis an identifier of the project that the task belongs to,statusis a number which represents a state of the task: 0 means PREPARATION, 1 - PENDING, 2 - IN TESTS, and 3 - COMPLETED. The definition ofworkerswas explained above.- REST endpoints to the
Taskscollection include GET, POST, PUT, and DELETE operations as previously, with restrictions: we cannot change theproject_idof the task andworkerscan be selected only from the corresponding project members. All endpoints are available only for a user in role 1. - New navigation link, Tasks, opens the tasks viewer -
TasksLister. It differs from the previous ones (PersonsListerandProjectsLister) by the possibility of selecting a project whose tasks are displayed - use a combobox with single choice to implement. Additionally, a user can filter tasks bystatus(similarly toeducationinPersonsLister). TaskEditordoes not allow setting a project that the task belongs to. The field is set implicitly by selection of the project in the parent view (TasksLister).- Selection of the task workers applies only to project members.