{"id":13566829,"url":"https://github.com/kir-dev/tanulo-next","last_synced_at":"2026-01-28T02:59:05.379Z","repository":{"id":44808671,"uuid":"231672303","full_name":"kir-dev/tanulo-next","owner":"kir-dev","description":":books: Közös tanuláshoz partnerkeresést segítő alkalmazás","archived":false,"fork":false,"pushed_at":"2026-01-24T04:15:06.000Z","size":3002,"stargazers_count":9,"open_issues_count":41,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-24T15:59:28.153Z","etag":null,"topics":["express","nodejs","objectionjs","pug","typescript"],"latest_commit_sha":null,"homepage":"https://tanulo.sch.bme.hu","language":"Pug","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kir-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-01-03T21:58:55.000Z","updated_at":"2024-10-16T17:38:27.000Z","dependencies_parsed_at":"2023-12-19T04:39:59.592Z","dependency_job_id":"60a87675-99be-4a2d-9676-ade22bdc8309","html_url":"https://github.com/kir-dev/tanulo-next","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/kir-dev/tanulo-next","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kir-dev%2Ftanulo-next","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kir-dev%2Ftanulo-next/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kir-dev%2Ftanulo-next/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kir-dev%2Ftanulo-next/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kir-dev","download_url":"https://codeload.github.com/kir-dev/tanulo-next/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kir-dev%2Ftanulo-next/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28835626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T02:10:51.810Z","status":"ssl_error","status_checked_at":"2026-01-28T02:10:50.806Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["express","nodejs","objectionjs","pug","typescript"],"created_at":"2024-08-01T13:02:17.547Z","updated_at":"2026-01-28T02:59:05.357Z","avatar_url":"https://github.com/kir-dev.png","language":"Pug","funding_links":[],"categories":["Pug"],"sub_categories":[],"readme":"# tanulo-next\n\n![Build status](https://github.com/kir-dev/tanulo-next/workflows/Node%20CI/badge.svg)\n[![codebeat badge](https://codebeat.co/badges/f1ae2298-371c-4e4a-a712-64b13223b79c)](https://codebeat.co/projects/github-com-kir-dev-tanulo-next-master)\n\n## Pre-reqs\n\nTo build and run this app locally you will need a few things:\n\n- Install [Node.js](https://nodejs.org/en/)\n- Install [Postgresql](https://www.postgresql.org/download/)\n- Install [VS Code](https://code.visualstudio.com/)\n\nor\n\n- Docker\n\n## Getting started bare-metal\n\n- Clone the repository\n\n```bash\ngit clone https://github.com/kir-dev/tanulo-next.git \u003cproject_name\u003e\n```\n\n- Install dependencies\n\n```bash\ncd \u003cproject_name\u003e\nyarn install\n```\n\n- Configure your postgresql server\n\n```bash\nsudo su postgres\npsql -c 'create user \"tanulo\" with superuser password '\\''tanulo'\\'';'\npsql -c 'create database \"tanulo\";'\n```\n\n- Set up a `.env` file based on `.env.example` with real values.\n\n- Run migrations\n\n```bash\nyarn run migrate\n```\n\n- *Optional*: Set up seed in database\n\n```bash\nyarn run seed\n```\n\n- Build and run the project\n\n```bash\nyarn run build\nyarn start\n```\n\nFinally, navigate to `http://localhost:3000` and you should see the site being served and rendered locally!\n\nRun `yarn watch` to run reload the server on file changes. Note: this deletes the session, so you'll have to login again.\n\n## Setting up with Docker\n\n- Set up a `.env` file based on `.env.example` with real values.\n\n```bash\ndocker-compose build\ndocker-compose up\n```\n\nWhile the containers are running, execute the following:\n\n```bash\ndocker-compose run tanulo bash -c \"yarn run migrate\"\n```\n\n## Debugging\n\nDebugging TypeScript is exactly like debugging JavaScript with one caveat, you need source maps.\n\n### Source maps\n\nSource maps allow you to drop break points in your TypeScript source code and have that break point be hit by the JavaScript that is being executed at runtime.\n\n\u003e **Note!** - Source maps aren't specific to TypeScript.\n\u003e Anytime JavaScript is transformed (transpiled, compiled, optimized, minified, etc) you need source maps so that the code that is executed at runtime can be _mapped_ back to the source that generated it.\n\nThe best part of source maps is when configured correctly, you don't even know they exist! So let's take a look at how we do that in this project.\n\n#### Configuring source maps\n\nFirst you need to make sure your `tsconfig.json` has source map generation enabled:\n\n```json\n\"compilerOptions\" {\n    \"sourceMap\": true\n}\n```\n\nWith this option enabled, next to every `.js` file that the TypeScript compiler outputs there will be a `.map.js` file as well.\nThis `.map.js` file provides the information necessary to map back to the source `.ts` file while debugging.\n\n\u003e **Note!** - It is also possible to generate \"inline\" source maps using `\"inlineSourceMap\": true`.\n\u003e This is more common when writing client side code because some bundlers need inline source maps to preserve the mapping through the bundle.\n\u003e Because we are writing Node.js code, we don't have to worry about this.\n\n### Using the debugger in VS Code\n\nDebugging is one of the places where VS Code really shines over other editors.\nNode.js debugging in VS Code is easy to setup and even easier to use.\nThis project comes pre-configured with everything you need to get started.\n\nWhen you hit `F5` in VS Code, it looks for a top level `.vscode` folder with a `launch.json` file.\nIn this file, you can tell VS Code exactly what you want to do:\n\n```json\n{\n  \"type\": \"node\",\n  \"request\": \"attach\",\n  \"name\": \"Attach by Process ID\",\n  \"processId\": \"${command:PickProcess}\",\n  \"protocol\": \"inspector\"\n}\n```\n\nThis is mostly identical to the \"Node.js: Attach by Process ID\" template with one minor change.\nWe added `\"protocol\": \"inspector\"` which tells VS Code that we're using the latest version of Node which uses a new debug protocol.\n\nWith this file in place, you can hit `F5` to attach a debugger.\nYou will probably have multiple node processes running, so you need to find the one that shows `node dist/server.js`.\nNow just set your breakpoints and go!\n\n## Testing\n\nFor this project, we use [Cypress](https://www.cypress.io/) for end-to-end testing.\n\n### Running tests\n\nRunning `yarn run test` will open the Cypress GUI. From there you can run each test individually or all of them at once. These tests will also run through GitHub Actions when you push changes to this repository.\n\n## ESLint\n\nESLint is a code linter which mainly helps catch quickly minor code quality and style issues.\n\n### ESLint rules\n\nLike most linters, ESLint has a wide set of configurable rules as well as support for custom rule sets.\nAll rules are configured through `.eslintrc` configuration file.\nIn this project, we are using a fairly basic set of rules with no additional custom rules.\n\n### Running ESLint\n\nLike the rest of our build steps, we use yarn scripts to invoke ESLint.\nTo run ESLint you can call the main build script or just the ESLint task.\n\n```bash\nyarn run build   // runs full build including ESLint\nyarn run lint    // runs only ESLint\n```\n\nNotice that ESLint is not a part of the main watch task.\n\nIf you are interested in seeing ESLint feedback as soon as possible, I strongly recommend the [VS Code ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint).\n\n## License\n\nCopyright (c) Kir-Dev.\nLicensed under the [MIT](https://github.com/kir-dev/tanulo-next/blob/master/LICENSE) License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkir-dev%2Ftanulo-next","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkir-dev%2Ftanulo-next","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkir-dev%2Ftanulo-next/lists"}