The Kryptonite App API allows users to upload and manage image files using API keys. Below are the key features.
-
File Upload Service
- Users must have API keys to use the Kryptonite App.
- Files can be uploaded using the API key without an authentication token.
- API keys are generated by users.
- Uploaded files are associated with the user who owns the API key.
- Only image files are allowed for the moment.
-
Accessing Images
- Users can access all images or a single image without authentication.
-
API Key invalidation
- Users can invalidate an API key, making it unusable.
- API keys are issued once and never shown again to the user.
- Obtain an API key by registering as a Kryptonian.
- Use the API key to upload image files.
- Access images via the appropriate endpoints.
NestJs - TypeScript - Prisma (Postgresql) - Nodemailer - Swagger
To have an overview of the current endpoints within the app, please browser to YOUR_BASE_URL/api.
- Clone this repository.
- Install dependencies using
npm install
. - Set up your environment variables (e.g., database connection, Elasticemail credentials, etc.).
- Run the application using
npm run start
.
-
Prerequisites
- Ensure that you have Docker installed on your system. If not, follow the official Docker installation guide for your operating system:
- Install Docker on Linux
- Install Docker on macOS
- Install Docker on Windows
- Ensure that you have Docker installed on your system. If not, follow the official Docker installation guide for your operating system:
-
Building and Running the Docker Container
- Open a terminal and navigate to the root directory of your project.
- Start the container using Docker Compose:
docker-compose up -d
- Your Kryptonite App should now be have access to the postgres database running in the container.
-
Stopping and Cleaning Up
- To stop the containers, run:
docker-compose down
- To remove the containers and associated volumes, use:
docker-compose down -v
- To stop the containers, run:
Contributions are welcome! Please follow our guidelines for contributing.
This project is licensed under the MIT License - see the LICENSE file for details.