{"id":18419509,"url":"https://github.com/tutods/covid-tracking-system","last_synced_at":"2025-04-07T13:31:38.027Z","repository":{"id":38528297,"uuid":"259881821","full_name":"tutods/covid-tracking-system","owner":"tutods","description":"COVID Tracking System is a web app with the purpose to store COVID-19 tests and the information related","archived":false,"fork":false,"pushed_at":"2024-05-02T01:00:18.000Z","size":15015,"stargazers_count":3,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T19:12:00.300Z","etag":null,"topics":["angular","api","covid-19","express","mean","mongoose","nodejs"],"latest_commit_sha":null,"homepage":"https://covid-tracking-system.herokuapp.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tutods.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-29T09:28:39.000Z","updated_at":"2023-01-31T18:08:01.000Z","dependencies_parsed_at":"2024-01-30T10:45:01.987Z","dependency_job_id":null,"html_url":"https://github.com/tutods/covid-tracking-system","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutods%2Fcovid-tracking-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutods%2Fcovid-tracking-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutods%2Fcovid-tracking-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutods%2Fcovid-tracking-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tutods","download_url":"https://codeload.github.com/tutods/covid-tracking-system/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247661751,"owners_count":20975110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","api","covid-19","express","mean","mongoose","nodejs"],"created_at":"2024-11-06T04:17:17.157Z","updated_at":"2025-04-07T13:31:36.219Z","avatar_url":"https://github.com/tutods.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\u003ca style=\"display:block;\"\u003e\n\u003cimg src=\"https://i.ibb.co/C7vjrDG/covid-black.png\" alt=\"Covid\" width=\"100px\"\u003e\n\u003c/a\u003e\n\nCOVID Tracking System\n\n[![Version](https://img.shields.io/badge/Version-3.1.0-blue)](#)\n\n\u003c/h1\u003e\n\n\n## API\n+ **Folder:** `backend/`\n\n\u003ca href=\"http://nodejs.org\" style=\"margin-right: 10px\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/NodeJS-✓-blue\" alt=\"NodeJS\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://mongodb.com\" style=\"margin-right: 10px\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/MongoDB-✓-blue\" alt=\"MongoDB\"\u003e\n\u003c/a\u003e\n\n### 📦️ Packages\n\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### Express\n+ **[URL](http://expressjs.com)**\n+ **How to install**?\n  + `npm install express`\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n#### Mongoose\n+ **[URL](https://mongoosejs.com)**\n+ **How to install**?\n  + `npm install mongoose`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### DotENV\n+ **[URL](https://www.npmjs.com/package/dotenv)**\n+ **How to install**?\n  + `npm install dotenv`\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n#### BCrypt\n+ **[URL](https://www.npmjs.com/package/bcryptjs)**\n+ **How to install**?\n  + `npm install bcryptjs`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### Nodemon\n+ **[URL](http://nodemon.io)**\n+ **How to install**?\n  + `npm install -D nodemon`\n  + `npm install -g nodemon`\n    + **`-D`** to install only for dev\n    + **`-g`** to install package globally\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n#### Multer\n+ **[URL](https://www.npmjs.com/package/multer)**\n+ **How to install**?\n  + `npm install --save multer`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### Body Parser\n+ **[URL](https://www.npmjs.com/package/body-parser)**\n+ **How to install**?\n  + `npm install body-parser`\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n#### Cors\n+ **[URL](https://www.npmjs.com/package/cors)**\n+ **How to install**?\n  + `npm install cors`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### ShortID\n+ **[URL](https://www.npmjs.com/package/shortid)**\n+ **How to install**?\n  + `npm install shortid`\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n#### Nodemailer\n+ **[URL](https://www.npmjs.com/package/nodemailer)**\n+ **How to install**?\n  + `npm install nodemailer`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### EJS\n+ **[URL](https://www.npmjs.com/package/ejs)**\n+ **How to install**?\n  + `npm install ejs`\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n#### Swagger UI Express\n+ **[URL](https://www.npmjs.com/package/swagger-ui-express)**\n+ **How to install**?\n  + `npm install swagger-ui-express`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### JSON Web Token (JWT)\n+ **[URL](https://www.npmjs.com/package/jsonwebtoken)**\n+ **How to install**?\n  + `npm install jsonwebtoken`\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n#### Node-cron\n+ **[URL](https://www.npmjs.com/package/node-cron)**\n+ **How to install**?\n  + `npm install node-cron`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### Request\n+ **[URL](https://www.npmjs.com/package/request)**\n+ **How to install**?\n  + `npm install request`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\n### ℹ️ How to run\n1. Execute the command `npm install`\n1. Create `.env` file with this code:\n\t```env\n\t# NODE PORT\n\tPORT=3000\n\n\t# JWT\n\tSECRET=secret_word_for_jwt\n\tEXPIRES=1800000\n\n\t# MONGO DATA\n\tMONGO_HOST=localhost\n\tMONGO_PORT=27017\n\tMONGO_DB=covidSystem\n\n\t# EMAIL DATA\n\tEMAIL_USER=email@example.com\n\tEMAIL_PWD=email_pwd\n\n\t# USER DATA\n\tADMIN_NAME=COVID Tracking System\n\tADMIN_EMAIL=admin_email\n\tADMIN_PWD=admin_pwd\n\t```\n\t+ This code is on `.env.example` file;\n\t+ The `MONGO_PORT=27017` is default value;\n\n2. To insert default roles and default admin user into **MongoDB**, execute `npm run setup`\n3. To run **NodeJS** server (with **Nodemon**) execute `npm run dev`\n\n\n### 📂 Folder Structure\n\n```diff\n├── api\n│   ├── controllers\n│   │   ├── CovidTestController.js\n│   │   ├── GenericController.js\n│   │   ├── PatientController.js\n│   │   ├── SummaryController.js\n│   │   └── UserController.js\n│   ├── documentation\n│   │   ├── index.js\n│   │   └── src\n│   ├── index.js\n│   ├── middlewares\n│   │   ├── authorize.js\n│   │   ├── errorHandler.js\n│   │   ├── filters.js\n│   │   ├── logger.js\n│   │   ├── session.js\n│   │   └── sort.js\n│   ├── models\n│   │   ├── CovidTest.js\n│   │   ├── Patient.js\n│   │   ├── Role.js\n│   │   └── User.js\n│   └── routes\n│       ├── covidTests.js\n│       ├── patients.js\n│       ├── roles.js\n│       ├── summary.js\n│       └── users.js\n├── app.js\n├── config\n│   └── mongoose.js\n├── package-lock.json\n├── package.json\n├── public\n├── requests\n│   ├── covidTests.http\n│   ├── filters.http\n│   ├── patients.http\n│   ├── roles.http\n│   ├── sort.http\n│   └── users.http\n├── scripts\n│   ├── emailServer.js\n│   ├── resetEmail.js\n│   ├── roles.json\n│   └── setup.js\n└── views\n    ├── mail\n    │   └── reset.ejs\n    └── partials\n        ├── copyright.ejs\n        ├── footer.ejs\n        ├── header.ejs\n        ├── logo.ejs\n        ├── preheader.ejs\n        ├── style.ejs\n        └── title.ejs\n```\n\n## Frontend\n+ **Folder:** `frontend/`\n\n\u003ca href=\"https://angular.io\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Angular-✓-red\" alt=\"Angular\" /\u003e\n\u003c/a\u003e\n\n### ℹ️ How to run\n1. Change to `frontend/` folder (on terminal: `cd frontend`)\n1. Execute the command `npm install`\n1. Execute the command `ng serve` to run **Angular** application\n\n\n### 📂 Folder Structure\n```diff\n├── src\n│   ├── e2e\n│   ├── app\n│\t│   ├── app-routing.module.ts\n│\t│   ├── app.component.html\n│\t│   ├── app.component.sass\n│\t│   ├── app.component.spec.ts\n│\t│   ├── app.component.ts\n│\t│   ├── app.module.ts\n│\t│   ├── auth\n│\t│   │   ├── change\n│\t│   │   ├── login\n│\t│   │   ├── reset\n│\t│   │   ├── session.service.spec.ts\n│\t│   │   └── session.service.ts\n│\t│   ├── components\n│\t│   │   └── dialogs\n│\t│   ├── directives\n│\t│   │   ├── can-use\n│\t│   │   └── enable-menu\n│\t│   ├── functions\n│\t│   │   └── validateScopes.ts\n│\t│   ├── guards\n│\t│   │   └── scope\n│\t│   ├── interceptors\n│\t│   │   └── session-lost.interceptor.ts\n│\t│   ├── layout\n│\t│   │   ├── default\n│\t│   │   └── landing-page\n│\t│   ├── models\n│\t│   │   ├── patient.model.ts\n│\t│   │   ├── role.model.ts\n│\t│   │   └── user.model.ts\n│\t│   ├── pages\n│\t│   │   ├── dashboard\n│\t│   │   ├── patients\n│\t│   │   └── users\n│\t│   └── services\n│\t│       ├── covid-api\n│\t│       ├── patients\n│\t│       ├── patients.service.spec.ts\n│\t│       ├── patients.service.ts\n│\t│       ├── roles\n│\t│       └── users-service\n│\t├── assets\n│\t│   └── images\n│\t│       ├── add.png\n│\t│       ├── backgrounds\n│\t│       ├── logo\n│\t│       ├── prevention\n│\t│       ├── symptoms\n│\t│       └── user.png\n│\t├── environments\n│\t│   ├── environment.prod.ts\n│\t│   └── environment.ts\n│\t├── favicon.ico\n│\t├── index.html\n│\t├── main.ts\n│\t├── polyfills.ts\n│\t├── proxy.conf.json\n│\t├── styles\n│\t│   ├── _variables.sass\n│\t│   └── theme.sass\n│\t├── styles.sass\n│\t└── test.ts\n├── .editorconfig\n├── .gitignore\n├── angular.json\n├── browserslist\n├── karma.conf.js\n├── package-lock.json\n├── package.json\n├── tsconfig.app.json\n├── tsconfig.json\n├── tsconfig.spec.json\n└── tslint.json\n```\n\n### 📦️ Packages\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### Angular Material\n+ **[URL](https://material.angular.io)**\n+ **How to install**?\n  + `ng add @angular/material`\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n#### Angular Flex Layout\n+ **[URL](https://github.com/angular/flex-layout)**\n+ **How to install**?\n  + `npm i -s @angular/flex-layout @angular/cdk`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### ChartJS\n+ **[URL](https://github.com/chartjs/Chart.js)**\n+ **How to install**?\n  + `npm i -s chart.js`\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n#### NG2-Charts\n+ **[URL](https://www.npmjs.com/package/ng2-charts)**\n+ **How to install**?\n  + `npm i ng2-charts`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n#### NG2-Search-Filter\n+ **[URL](https://www.npmjs.com/package/ng2-search-filter)**\n+ **How to install**?\n  + `npm i ng2-search-filter`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftutods%2Fcovid-tracking-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftutods%2Fcovid-tracking-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftutods%2Fcovid-tracking-system/lists"}