{"id":15099036,"url":"https://github.com/lukasondrejka/express-api-app","last_synced_at":"2026-02-06T21:01:47.342Z","repository":{"id":250877088,"uuid":"835729137","full_name":"lukasondrejka/express-api-app","owner":"lukasondrejka","description":"Express.js API application (Node.js, TypeScript, Sequelize, NodeMailer, Docker, Postman, GitHub Actions)","archived":false,"fork":false,"pushed_at":"2024-07-30T12:26:13.000Z","size":130,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-01T17:44:59.068Z","etag":null,"topics":["api","backend","chaijs","docker","express","expressjs","node","nodejs","postman","typescript"],"latest_commit_sha":null,"homepage":"","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/lukasondrejka.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":"2024-07-30T12:18:51.000Z","updated_at":"2024-07-30T12:34:09.000Z","dependencies_parsed_at":"2024-07-30T15:34:26.396Z","dependency_job_id":"976a6b8f-c1b7-4409-9fad-4dd4687349a6","html_url":"https://github.com/lukasondrejka/express-api-app","commit_stats":null,"previous_names":["lukasondrejka/express-api-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukasondrejka%2Fexpress-api-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukasondrejka%2Fexpress-api-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukasondrejka%2Fexpress-api-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukasondrejka%2Fexpress-api-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukasondrejka","download_url":"https://codeload.github.com/lukasondrejka/express-api-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245854950,"owners_count":20683437,"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":["api","backend","chaijs","docker","express","expressjs","node","nodejs","postman","typescript"],"created_at":"2024-09-25T17:03:02.971Z","updated_at":"2026-02-06T21:01:47.334Z","avatar_url":"https://github.com/lukasondrejka.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Express API App\n\nExpress.js Rest API application with authentication, email notifications, user management. \nThe application is built with TypeScript, PostgreSQL, Sequelize ORM and Docker. \nRepository includes GitHub Actions for linting and testing the application with Postman and Chai.js.\n\n## Features\n\n- User authentication with email verification\n- JWT authentication (with JWT tokens stored in the database for revoking on logout before expiration)\n- User management (CRUD operations)\n- User roles (admin, user)\n\n## Documentation\n\n  - [Configuration options and environment variables](./configuration.md)\n  - [Postman collection](./postman) (includes tests)\n\n## Configuration\n\nConfiguration options are set in [.env](.env) file.\nThe majority of essential configuration options are available through environment variables. \nAll configuration options are available in [configs](app/src/configs) directory.\nConfiguration options are documented in [configuration.md](./configuration.md).\n\n## Development setup\n\nAll necessary components of the application are containerized with Docker.\n[docker-compose.yml](docker-compose.yml) defines services for the application \nand [docker-compose.override.yml](docker-compose.override.yml) extends the configuration for development with hot-reloading.\n\n### Docker containers\n\n- Express.js application\n- PostgreSQL database\n- MailHog (email testing tool)\n- Nginx (web server for serving static files and reverse proxy)\n\n### Prerequisites\n\n  - [Docker](https://docs.docker.com/get-docker/)\n  - [Node.js](https://nodejs.org/en/download/) (v20 or higher)\n\n### Setup\n   \n1. Install dependencies\n\n    ```bash\n    npm --prefix app i\n    ```\n   \n3. Run docker containers\n\n    ```bash\n    docker-compose up\n    ```\n\n## Scripts\n\nScripts must be run from `app` directory.\n\n- `npm run dev` - run application in development mode\n- `npm run build` - build application (output in `build` directory)\n- `npm run start` - run application in production mode from `build` directory\n- `npm run lint` - run lint and fix issues\n- `npm run eslint` - run lint\n- `npm run test` - run Postman tests\n\n## Application structure\n\n- `app` - application source code\n  - `src` - source code\n    - `configs` - configuration files\n    - `controllers` - controllers\n    - `helpers` - helper functions\n    - `middlewares` - middlewares\n    - `models` - models\n    - `routes` - routes\n    - `app.ts` - application\n  - `build` - build output\n  - `views` - templates\n  - `app.ts` - application\n  - `index.ts` - entry point\n\n## Resources\n- [TypeScript Documentation](https://www.typescriptlang.org/docs/)\n- [Express.js](https://expressjs.com/) (Node.js web application framework)\n- [Sequelize](https://sequelize.org/) (ORM)\n- [Postman](https://www.postman.com/)\n- [Chai.js](https://www.chaijs.com/) (assertion library for Postman tests)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukasondrejka%2Fexpress-api-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukasondrejka%2Fexpress-api-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukasondrejka%2Fexpress-api-app/lists"}