Skip to content
/ vtt-edu Public

This project is done for the educational purpose of learning Vue, MongoDB, and my entry to full-stack development. The app was made in 2023 and I learned a lot since then. Hence the code might be outdated.

Notifications You must be signed in to change notification settings

plwtx/vtt-edu

Repository files navigation

VTT-EDU | Vue Task Tracker

Preparing the project to work

  1. clone the project
  2. install dependencies in the root directory of the project: npm install
  3. install dependencies in the frontend subfolder as above
  4. copy config-example.json to config.json and customize it
  5. start the backend: npm start
  6. from the frontend folder, run the web server: npm run serve
  7. from the browser connect to http://localhost:8080

Prepare the production version

  1. from the frontend directory: npm run build
  2. from the browser connect to http://localhost:8000 (from configuration)

Note about Project

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.

Structure

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.

Details

  1. Task schema is equipped with name, project_id, status, and workers fields. name is a non-empty title of the task, project_id is an identifier of the project that the task belongs to, status is a number which represents a state of the task: 0 means PREPARATION, 1 - PENDING, 2 - IN TESTS, and 3 - COMPLETED. The definition of workers was explained above.
  2. REST endpoints to the Tasks collection include GET, POST, PUT, and DELETE operations as previously, with restrictions: we cannot change the project_id of the task and workers can be selected only from the corresponding project members. All endpoints are available only for a user in role 1.
  3. New navigation link, Tasks, opens the tasks viewer - TasksLister. It differs from the previous ones (PersonsLister and ProjectsLister) 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 by status (similarly to education in PersonsLister).
  4. TaskEditor does 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).
  5. Selection of the task workers applies only to project members.
AS MENTIONED ABOVE please keep in mind that this project is done for the educational purpose of learning Vue. Hence, it is not meant for public use. It might have security holes, bugs, deprecated packages, etc.

About

This project is done for the educational purpose of learning Vue, MongoDB, and my entry to full-stack development. The app was made in 2023 and I learned a lot since then. Hence the code might be outdated.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published