Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edu4Every ( Novathon ) #1110

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 119 additions & 0 deletions hackathon/Edu4Every ( Novathon )/Edu4Every/fastapi/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# AI Educational and Career Support Platform

## Overview

This comprehensive platform provides a suite of AI-powered tools designed to support students, teachers, and job seekers through various stages of their educational and professional journey.

## Features

### 1. Assignment Correction AI
- Automatically grade student assignments
- Uses OCR to extract text from PDF submissions
- Compares student answers with teacher's reference answer
- Provides a grade out of 100

### 2. Job Recommendation System
- Analyzes user questionnaire responses
- Recommends personalized job roles
- Integrates with Google Jobs API to fetch relevant job listings

### 3. Resume Processing
- Generates professional 2-page resumes
- Utilizes job market keywords
- Customized based on user's education, skills, and experience

### 4. Additional Tools
- AI Writing Assistant
- AI Note Maker
- AI Call Assistant
- AI Learning Course Generator
- AI Mock Test Generator
- AI Career Roadmap Creator

## Technologies Used

### Backend
- FastAPI
- Python

### AI and Machine Learning
- LLMWare
- Groq AI
- Ollama
- Mistral AI Model

### APIs
- SerpAPI (for job searches)
- Bolna API (for call initiation)

## Setup and Installation

### Prerequisites
- Python 3.8+
- pip
- Virtual environment (recommended)

### Installation Steps
1. Clone the repository
```bash
git clone <repository-url>
```

2. Create a virtual environment
```bash
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
```

3. Install dependencies
```bash
pip install -r requirements.txt
```

4. Set up environment variables
Create a `.env` file with the following:
```
groq_api=your_groq_api_key
serpapi_api=your_serpapi_key
bolna_api=your_bolna_api_key
agent_id=your_agent_id
```

5. Run the application
```bash
uvicorn main:app --reload
```

## API Endpoints

### Assignment Correction
- `POST /correct-ai-assiagment/upload-and-process-pdf`
- Uploads PDF and processes assignment

### Job Recommendation
- `POST /job_recommendation/recommend-jobs`
- Generates job recommendations based on user profile

### Resume Processing
- `POST /process_carrier_guidance/process-guidance`
- Generates personalized resume

## Security
- CORS configured
- API key protection
- Secure file handling

## Contributing
1. Fork the repository
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

## License
Distributed under the MIT License. See `LICENSE` for more information.

## Contact
Your Name - [email protected]

Project Link: [https://github.com/yourusername/your-project-name]
16 changes: 16 additions & 0 deletions hackathon/Edu4Every ( Novathon )/Edu4Every/fastapi/cors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from fastapi.middleware.cors import CORSMiddleware

def add_cors(app):
# List of allowed origins (can be '*' to allow all origins)
allowed_origins = [
"*" # Add any other domain you want to allow
]

# Adding CORS middleware
app.add_middleware(
CORSMiddleware,
allow_origins=allowed_origins, # Specifies allowed origins
allow_credentials=True,
allow_methods=["*"], # Allow all HTTP methods (GET, POST, etc.)
allow_headers=["*"], # Allow all headers
)
37 changes: 37 additions & 0 deletions hackathon/Edu4Every ( Novathon )/Edu4Every/fastapi/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
from fastapi import FastAPI
from routers.teacher import teacher_router
from routers.student import student_router
from routers.carrier_guidance import carrier_guidance_router
from routers.job_ai import job_recommendation_router
from routers.resume import process_resume
from routers.rag import router
from routers.image_search import router as search_image
from routers.writing_assistant import router as writing_assistant_router
from routers.ai_note_maker import router as ai_note_maker
from routers.ai_call_assistant import router as call_assistant
from routers.ai_assiagment_correcter import router as ai_assiagment_correcter
from routers.ai_learning_cource import router as ai_learning_cource
from routers.ai_mock_test_genarate import router as ai_mock_test_genarate
from routers.ai_roadmap import router as ai_roadmap
from cors import add_cors # Import the CORS configuration

app = FastAPI()

# Apply CORS settings
add_cors(app)

# Include the routers
app.include_router(teacher_router, prefix="/teacher", tags=["Teacher"])
app.include_router(student_router, prefix="/student", tags=["Student"])
app.include_router(carrier_guidance_router, prefix="/carrier_guidance", tags=["Carrier Guidance"])
app.include_router(process_resume , prefix="/process_carrier_guidance", tags=["Process Carrier Guidance"])
app.include_router(job_recommendation_router, prefix="/job_recommendation", tags=["Job Recommendation"])
app.include_router(router, prefix="/rag", tags=["RAG"])
app.include_router(search_image, prefix="/search-image", tags=["Search Image"])
app.include_router(writing_assistant_router, prefix="/writing_assistant", tags=["Writing Assistant"])
app.include_router(ai_note_maker, prefix="/transcribe-audio", tags=["Transcribe Audio"])
app.include_router(call_assistant, prefix="/initiate-call", tags=["Initiate Call"])
app.include_router(ai_assiagment_correcter, prefix="/correct-ai-assiagment", tags=["Correct AI Assiagment"])
app.include_router(ai_learning_cource, prefix="/ai-learning-cource", tags=["AI Learning Cource"])
app.include_router(ai_mock_test_genarate, prefix="/ai-mock-test-genarate", tags=["AI Mock Test Genarate"])
app.include_router(ai_roadmap, prefix="/ai-roadmap", tags=["AI Roadmap"])
138 changes: 138 additions & 0 deletions hackathon/Edu4Every ( Novathon )/Edu4Every/fastapi/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
annotated-types==0.7.0
anyio==4.6.2.post1
asgiref==3.8.1
backoff==2.2.1
bcrypt==4.2.1
boto3==1.35.71
botocore==1.35.71
build==1.2.2.post1
cachetools==5.5.0
certifi==2024.8.30
cffi==1.17.1
charset-normalizer==3.4.0
chroma-hnswlib==0.7.6
chromadb==0.5.20
click==8.1.7
colorama==0.4.6
coloredlogs==15.0.1
Deprecated==1.2.15
distro==1.9.0
dnspython==2.7.0
durationpy==0.9
exceptiongroup==1.2.2
fastapi==0.115.5
filelock==3.16.1
flatbuffers==24.3.25
fsspec==2024.10.0
google-auth==2.36.0
googleapis-common-protos==1.66.0
greenlet==3.1.1
groq==0.12.0
grpcio==1.68.0
h11==0.14.0
httpcore==1.0.7
httptools==0.6.4
httpx==0.27.2
huggingface-hub==0.26.2
humanfriendly==10.0
idna==3.10
importlib_metadata==8.5.0
importlib_resources==6.4.5
Jinja2==3.1.4
jiter==0.8.0
jmespath==1.0.1
kubernetes==31.0.0
llmware==0.3.9
markdown-it-py==3.0.0
MarkupSafe==3.0.2
mdurl==0.1.2
mmh3==5.0.1
monotonic==1.6
mpmath==1.3.0
networkx==3.4.2
numpy==2.1.3
nvidia-cublas-cu12==12.4.5.8
nvidia-cuda-cupti-cu12==12.4.127
nvidia-cuda-nvrtc-cu12==12.4.127
nvidia-cuda-runtime-cu12==12.4.127
nvidia-cudnn-cu12==9.1.0.70
nvidia-cufft-cu12==11.2.1.3
nvidia-curand-cu12==10.3.5.147
nvidia-cusolver-cu12==11.6.1.9
nvidia-cusparse-cu12==12.3.1.170
nvidia-nccl-cu12==2.21.5
nvidia-nvjitlink-cu12==12.4.127
nvidia-nvtx-cu12==12.4.127
oauthlib==3.2.2
onnxruntime==1.20.1
openai==1.55.2
opentelemetry-api==1.28.2
opentelemetry-exporter-otlp-proto-common==1.28.2
opentelemetry-exporter-otlp-proto-grpc==1.28.2
opentelemetry-instrumentation==0.49b2
opentelemetry-instrumentation-asgi==0.49b2
opentelemetry-instrumentation-fastapi==0.49b2
opentelemetry-proto==1.28.2
opentelemetry-sdk==1.28.2
opentelemetry-semantic-conventions==0.49b2
opentelemetry-util-http==0.49b2
orjson==3.10.12
overrides==7.7.0
packaging==24.2
pdf2image==1.17.0
pgvector==0.2.4
pillow==11.0.0
posthog==3.7.4
protobuf==5.29.0
psycopg==3.1.17
psycopg-binary==3.1.17
psycopg2-binary==2.9.10
pyasn1==0.6.1
pyasn1_modules==0.4.1
pycparser==2.22
pydantic==2.10.2
pydantic_core==2.27.1
pydub==0.25.1
Pygments==2.18.0
pymongo==4.10.1
PyPDF2==3.0.1
PyPika==0.48.9
pyproject_hooks==1.2.0
pytesseract==0.3.13
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
python-multipart==0.0.17
PyYAML==6.0.2
regex==2024.11.6
requests==2.32.3
requests-oauthlib==2.0.0
rich==13.9.4
rsa==4.9
s3transfer==0.10.4
safetensors==0.4.5
serpapi==0.1.5
shellingham==1.5.4
six==1.16.0
sniffio==1.3.1
soundfile==0.12.1
soxr==0.5.0.post1
SQLAlchemy==2.0.36
starlette==0.41.3
sympy==1.13.1
tenacity==9.0.0
tokenizers==0.20.3
tomli==2.2.1
torch==2.5.1
tqdm==4.67.1
transformers==4.46.3
triton==3.1.0
typer==0.13.1
typing_extensions==4.12.2
urllib3==2.2.3
uvicorn==0.32.1
uvloop==0.21.0
watchfiles==1.0.0
websocket-client==1.8.0
websockets==14.1
wrapt==1.17.0
zipp==3.21.0
Loading