Skip to content

KCui0327/Athena

Repository files navigation


Logo

Athena

An AI web app that empowers students study smarter by turning raw materials (notes, images, and video links) into summarized, interactive, and multimedia study content
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Features
  4. Usage
  5. Roadmap
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgments
  10. Future Enhancements
  11. Testing

About The Project

Product Name Screen Shot

Athena is a webapp that enables students to upload notes, images, share links to videos. Athena will summarize the notes, create study guides, create quizzes and generate videos based on their notes. These videos will be snippets of YouTube videos that are relevant.

(back to top)

Built With

  • React
  • Typescript
  • Javascript
  • Tailwind
  • Docker
  • Terraform
  • GCP
  • PYTHON

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

Before you begin, ensure you have the following installed on your machine:

  1. Node.js and npm
    Install Node.js, which includes npm (Node Package Manager). You can download it from Node.js official website.

  2. Python
    Install Python (version 3.7 or higher). You can download it from Python's official website.
    Verify the installation by running:

python --version

Install pip, the Python package manager, if it is not already installed:

python -m ensurepip --upgrade
  1. Terraform
    Install Terraform by following these steps:
  • Download the appropriate package for your operating system from the Terraform downloads page.
  • Unzip the package and move the binary to a directory included in your system's PATH.
  • Verify the installation by running:
    terraform --version
  1. Docker
    Install Docker to run containerized applications. You can download it from Docker's official website.
    Verify the installation by running:
docker --version

Ensure Docker is running and you have the necessary permissions to execute Docker commands.

  1. Google Cloud Platform (GCP) Account
  • Register for a GCP account at Google Cloud Console.
  • Create a new project in the GCP Console.
  • Enable the necessary APIs (e.g., Cloud Storage, Compute Engine, etc.).
  • Download a service account key in JSON format and set the GOOGLE_APPLICATION_CREDENTIALS environment variable:
    export GOOGLE_APPLICATION_CREDENTIALS="path/to/your-service-account-key.json"

Installation

Follow these steps to set up the project locally:

1. Clone the Repository

git clone https://github.com/KCui0327/Athena.git
cd Athena

2. Backend Setup and Execution

Navigate to the src/backend directory and set up a virtual environment:

  1. Create a Virtual Environment
    Run the following command to create a virtual environment:
python -m venv venv

Activate the virtual environment:

  • On macOS/Linux:
    source venv/bin/activate
  • On Windows:
    venv\Scripts\activate
  1. Install Dependencies
    Install the required Python packages:
pip install -r requirements.txt
  1. Create a .env File
    Create a .env file in the src/backend directory to store secrets for GCP and databases. Add the following variables:
GOOGLE_APPLICATION_CREDENTIALS=path/to/your-service-account-key.json
DATABASE_URL=your-database-connection-string

Replace path/to/your-service-account-key.json and your-database-connection-string with the appropriate values.

  1. Run the Backend
    At the project root directory, start the FastAPI development server:
fastapi dev src/backend/main.py

3. Frontend Setup

Navigate to the src/frontend directory, install the dependencies, and run the program:

cd ../frontend
npm install
npm run dev

4. Initialize and Apply Terraform Configuration

From the root project directory, run the following commands:

  1. Initialize Terraform
    This command initializes the Terraform working directory by downloading the necessary provider plugins and preparing the environment:
terraform init
  1. Plan the Deployment
    This command creates an execution plan, showing what actions Terraform will take to achieve the desired state:
terraform plan
  1. Apply the Configuration
    This command applies the changes required to reach the desired state of the configuration:
terraform apply

(back to top)

Features

  • Upload notes, images, and video links.
  • Summarize notes into concise study guides.
  • Generate quizzes based on uploaded content.
  • Create multimedia study materials, including video snippets from YouTube.
  • Scalable infrastructure using Terraform and GCP.
  • Containerized deployment with Docker.

(back to top)

Future Enhancements

  • Add support for additional file formats (e.g., PDFs, Word documents).
  • Integrate with more cloud providers (e.g., AWS, Azure).
  • Implement advanced AI models for personalized study recommendations.
  • Add collaborative features for group study sessions.
  • Enhance accessibility features for visually impaired users.

(back to top)

Testing

To ensure the project works as expected, follow these steps to run tests:

  1. Backend Tests
    Navigate to the src/backend directory and run:

    pytest
  2. Frontend Tests
    Navigate to the src/frontend directory and run:

    npm test
  3. End-to-End Tests
    Use a testing framework like Cypress for end-to-end testing. Install Cypress and run:

    npx cypress open

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the project_license. See LICENSE.txt for more information.

(back to top)

Contact

(back to top)

Acknowledgments

  • React.js - A JavaScript library for building user interfaces.
  • TypeScript - A strongly typed programming language that builds on JavaScript.
  • JavaScript - A versatile programming language for web development.
  • Tailwind CSS - A utility-first CSS framework for styling.
  • Docker - A platform for developing, shipping, and running applications in containers.
  • Terraform - An infrastructure as code tool for building and managing cloud resources.
  • Google Cloud Platform (GCP) - A suite of cloud computing services.
  • Python - A high-level programming language for general-purpose programming.
  • Large Language Models (LLMs) - AI models that assist in generating code and improving development efficiency.
  • Gemini - A cutting-edge AI model that enhances the project's capabilities through advanced natural language understanding.

Acknowledgments: This project leverages the above technologies to deliver a robust and scalable solution. Special thanks to the open-source community for maintaining these tools and frameworks, and to advancements in AI, particularly LLMs and Gemini, for enhancing our coding process.

(back to top)

About

GenAI Genesis 2025

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •