https://github.com/tberey/ts-node-electron-aws-s3-app
A robust HTTP REST API, to interact with AWS S3 Buckets. This is a full stack solution, in an Electron desktop application, or as a browser based app.
https://github.com/tberey/ts-node-electron-aws-s3-app
amazon amazon-web-services api aws aws-s3 buckets electron javascript node nodejs rest rest-api s3 s3-bucket s3-storage storage typescript
Last synced: 5 months ago
JSON representation
A robust HTTP REST API, to interact with AWS S3 Buckets. This is a full stack solution, in an Electron desktop application, or as a browser based app.
- Host: GitHub
- URL: https://github.com/tberey/ts-node-electron-aws-s3-app
- Owner: tberey
- Created: 2021-05-23T18:16:21.000Z (about 5 years ago)
- Default Branch: development
- Last Pushed: 2023-02-03T20:01:03.000Z (over 3 years ago)
- Last Synced: 2023-03-04T09:55:02.983Z (over 3 years ago)
- Topics: amazon, amazon-web-services, api, aws, aws-s3, buckets, electron, javascript, node, nodejs, rest, rest-api, s3, s3-bucket, s3-storage, storage, typescript
- Language: TypeScript
- Homepage: https://github.com/tberey/ts-node-electron-aws-s3-app/blob/development/README.md
- Size: 2.29 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
README
[![Workflow][workflow-shield]][workflow-url]
[![Issues][issues-shield]][issues-url]
[![Version][version-shield]][version-url]
[![Stargazers][stars-shield]][stars-url]
[![Forks][forks-shield]][forks-url]
[![Contributors][contributors-shield]][contributors-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
TS-Node-Electron-AWS-S3-App
A robust Electron application, that serves a REST API to interact with AWS S3.
Contents
## About This Project
This is a Electron application, built in Node and TypeScript, that delivers a client a REST API to fully interact with AWS's S3 buckets. This is not a web application directly, but it is a web-app packaged into an Electron window, that runs like an executable, using Chromium browser tech.
### Tech Stack
* [Typescript](https://www.typescriptlang.org/)
* [NodeJS](https://nodejs.org/en/)
* [Electron](https://www.electronjs.org/)
* [ExpressJS](https://expressjs.com/)
* [AWS](https://aws.amazon.com/)
* [EJS](https://ejs.co/)
* [Axios](https://axios-http.com/)
* [fs](https://nodejs.org/api/fs.html)
* [Rollbar](https://rollbar.com/)
* [SimpleTxtLogger](https://www.npmjs.com/package/simple-txt-logger)
* [ESLint](https://eslint.org/)
* [MochaChai](https://mochajs.org/)
## Startup
For help or guidance in downloading and running the application, see the following subsections.
#### Prerequisites
[You must have npm (node package manager) and Nodejs installed on your system!](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
1. Setup npm:
```sh
npm install npm@latest -g
```
#### Installation
1. Clone/Download:
```sh
git clone https://github.com/tberey/ts-node-electron-aws-s3-app.git
```
2. Install:
```sh
npm install && npm update
```
3. Start:
```sh
npm run start:app
```
## Usage
This is a electron application, which means it runs on your system, rather than a browser web app (yes, electron is technically just doing what a web browser does).
As Such, simply install and run this application and the window will load automatically as if running an executable.
| Endpoint | Action/Desc. | Full URI (hosted locally, on some port; e.g.: 3000) | Request Type |
|:---|:---|:---|:---|
|
- "/"
- "http://localhost:3000/"
|
- "/listBuckets"
- "http://localhost:3000/listBuckets"
|
- "/findBucket"
- "http://localhost:3000/findBucket?bucket=BUCKET_NAME"
|
- "/listObjects"
- "http://localhost:3000/listObjects?bucket=BUCKET_NAME"
|
- "/findObject"
- "http://localhost:3000/findObject?bucket=BUCKET_NAME&object=OBJECT_NAME"
|
- "/createBucket"
- "http://localhost:3000/createBucket"
|
- "/uploadFile"
- "http://localhost:3000/uploadFile"
|
- "/downloadFile"
- "http://localhost:3000/downloadFile"
|
- "/deleteBucket"
- "http://localhost:3000/deleteBucket"
|
- "/emptyBucket"
- "http://localhost:3000/emptyBucket"
### Screenshots
Logging Sample:

## Roadmap
Below is the refined and confirmed roadmap, that has been planned for completion. See [open issues][issues-url] and also the [project board][project-url], for any other proposed features or known issues, which may not be listed below.
| Feature/Task/Bugfix | Details | Version (if released) | Notes |
|:---|:---|:---|:---|
| Bug#1 | Bug details... | 0.0.1 | example#1 |
| Feature#4 | Feature details... | | example#2 |
## Changelog
| Version | Date | Changes |
|:---|:---|:---|
| 1.0.0 | 2021-07-10 |
- Initial Commit.
- Add initial directory structure and files.
- Add Screenshots directory, and images.
- Create and format README.md
| 1.0.1 | 2021-07-14 |
- Replace local SimpleTxtLogger with npm module SimpleTxtLogger.
- Update Electron client script.
- Update README.md
| 1.0.2 | 2021-08-03 |
- Fix spelling.
- Update README.md
| 1.0.3 | 2021-08-04 |
- Update README.md
## Contributing
Contributions are welcomed and, of course, **greatly appreciated**.
1. Fork the Project.
2. Create your Feature Branch (`git checkout -b feature/Feature`)
3. Commit your Changes (`git commit -m 'Add some Feature'`)
4. Push to the Branch (`git push origin feature/Feature`)
5. Open a Pull Request.
### Contact
Tom Berey; Project Manager, Lead Developer, Principal Tester & Customer Services;
tomberey1@gmail.com;
* [Issues & Requests][issues-url]
* [My Other Projects](https://github.com/tberey?tab=repositories)
* [Personal Website](https://tberey.github.io/)
* [Linked In](https://uk.linkedin.com/in/thomas-berey)
### Acknowledgements
* [Me](https://github.com/tberey)
[workflow-shield]: https://github.com/tberey/ts-node-electron-aws-s3-app/actions/workflows/codeql-analysis.yml/badge.svg
[workflow-url]: https://github.com/tberey/ts-node-electron-aws-s3-app/actions
[version-shield]: https://img.shields.io/github/v/release/tberey/ts-node-electron-aws-s3-app
[version-url]: https://github.com/tberey/ts-node-electron-aws-s3-app/releases/
[stars-shield]: https://img.shields.io/github/stars/tberey/ts-node-electron-aws-s3-app.svg
[stars-url]: https://github.com/tberey/ts-node-electron-aws-s3-app/stargazers
[contributors-shield]: https://img.shields.io/github/contributors/tberey/ts-node-electron-aws-s3-app.svg
[contributors-url]: https://github.com/tberey/ts-node-electron-aws-s3-app/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/tberey/ts-node-electron-aws-s3-app.svg
[forks-url]: https://github.com/tberey/ts-node-electron-aws-s3-app/network/members
[issues-shield]: https://img.shields.io/github/issues/tberey/ts-node-electron-aws-s3-app.svg
[issues-url]: https://github.com/tberey/ts-node-electron-aws-s3-app/issues
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?logo=linkedin&colorB=555
[linkedin-url]: https://uk.linkedin.com/in/thomas-berey
[project-url]: https://github.com/tberey/ts-node-electron-aws-s3-app/projects