docker build --platform linux/amd64 -t my-streamlit-app .
docker run --env-file .env -p 8501:8501 my-streamlit-app
- Use
sudo
if required.
sudo docker build -t my-streamlit-app .
sudo docker run --env-file .env -p 8501:8501 my-streamlit-app
-
Clone the Repository:
git clone https://github.com/yourusername/yourrepo.git cd yourrepo
-
Install Dependencies: It’s recommended to use a virtual environment:
pip install -r requirements.txt
Required Python packages include:
streamlit
PyPDF2
langchain
gTTS
OpenAI
Python bindingsSQLAlchemy
SentenceTransformers
FAISS
AssemblyAI
Python bindingsyt-dlp
BeautifulSoup4
,urllib3
for web scraping
-
Modify the .env file
-
Run the App: Start the Streamlit application:
streamlit run application.py
Here’s an improved, well-organized version of your Docker notes:
By default, your Streamlit app will run at:
Simply open this link in your browser to view the app.
-
Home Page:
From the homepage, you can navigate to sign up, log in, or explore About/Contact pages. -
Sign Up / Login:
- Professor: After logging in, you’re taken to a dashboard where you can create courses, upload files, set YouTube links, and view insights.
- Student: After logging in, you see available courses, can open them, ask questions, generate flashcards/MCQs, summarize materials, or convert them into podcasts.
-
Course Management (Professor Only):
- Create a new course.
- Upload PDFs/TXT files as course materials.
- Add a YouTube video link, which will automatically process transcripts (if configured).
-
Student Interactions:
- View Course Details: See what materials are available.
- Ask Questions: The system uses vector embedding and GPT to answer.
- Generate Flashcards/MCQs: Click the respective buttons and receive AI-generated study aids.
- Summarize Content: Quickly get a summary of all course materials.
- Podcast Generation: Upload PDFs and generate a script/audio podcast to study on the go.
-
Data Insights (Professor Only):
- View charts and a report of all asked questions (topics distribution, word clouds).
- Improve course content based on student query analysis.
-
Models:
You can switch GPT models (likegpt-4
orgpt-3.5-turbo
) by editing the code inapplication.py
orpodcast.py
. -
Styling:
Custom CSS is injected at runtime. To adjust styling, modifyapplication1.py
or the inline CSS sections in the code. -
Database:
The default SQLite database can be swapped with another SQL database by updatingDATABASE_URL
indatabase.py
. -
Embeddings & Vector Store: By default, it uses the
all-MiniLM-L6-v2
SentenceTransformer model. You can change the embedding model inapplication.py
or other embedding scripts.
- Fork the Repo and create feature branches.
- Pull Requests: Submit PRs for review before merging.
- Issues: Report bugs or request features via the Issues tab.