This repository contains the diploma project for the bachelor's degree in Software Engineering at the National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute". The goal of the project is to develop a web service for aggregating AI-generated content, primarily focusing on AI-generated images. The system facilitates the search, recognition, and aggregation of such content from both open sources and user contributions.
The AI-ggregate web service is developed to address the growing need for a centralized service to handle AI-generated content. The platform aggregates AI-generated images from open sources, allows users to upload their own AI-generated content, and enables users to search and classify AI-generated images. It is particularly useful for developers, researchers in AI, and general users interested in generative AI content.
The main objectives of the project include:
- Simplifying the process of searching for and recognizing AI-generated images.
- Aggregating AI-generated content from open sources and user uploads.
- Providing a service for the classification of AI-generated images.
- User authentication: Secure login and registration for users.
- AI-generated image search: Search aggregated AI-generated images from open sources.
- Content aggregation: Automatically aggregate AI-generated images from multiple open sources.
- User uploads: Allow users to upload their own AI-generated images for classification and storage.
- AI-generated image recognition: Classify images to determine if they were generated by AI.
- Admin moderation: Admins can manage and moderate aggregated content.
The project utilizes the following technologies:
- Languages: TypeScript, Python
- Frontend: Angular
- Backend: NestJS, Flask
- AI Library: FastAI
- Database: PostgreSQL
- Containerization: Docker
- AI Models: ResNet (for image classification)
This diagram shows the system and its external actors, including users, admins, and external data sources.
The high-level architecture of the platform, including the web UI, API services, and database.
Follow these steps to install and run the project locally:
-
Clone the repository:
git clone https://github.com/Ekedani/diploma-project.git
-
Install backend dependencies:
pip install -r requirements.txt
-
Install frontend dependencies:
npm install
-
Set up environment variables:
cp .env.example .env
Configure the
.env
file with appropriate API keys, database credentials, and other settings. -
Start the Docker container:
docker-compose up --build
To run the application, use the following commands:
-
To start the backend server:
python manage.py runserver
-
To start the frontend application:
npm start