Skip to content

masum184e/askiit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Askiit

A university Q&A platform empowering students with instant answers, project insights, and internship tracking—all enhanced by AI.

🚀 Description

Askiit is a full-stack web platform designed for universities, connecting students, teachers, and admins for seamless knowledge-sharing. Built with Next.js (frontend) and FastAPI (backend), it offers:

  • Fast, secure student authentication and profile management
  • Project (SPL) coordination and tracking
  • Internship opportunities overview
  • An AI-powered chatbot via Gemini API (through LangChain) for smart responses
  • Modern, containerized deployment

Preview

Live Preview

✨ Features

  • Student Registration & Session Management: Secure signup/login and account management
  • SPL Listings: View and manage Software Project Lab (SPL) projects and details
  • Internship Company Tracking: Keep records of companies, roles, and internship status
  • AI-Powered Chatbot: Get quick answers with Gemini-powered AI integration using LangChain
  • Admin Panel: Manage users, SPL projects, internship listings (optional/enabled)
  • Dockerized Setup: Ready-to-launch Docker Compose configuration for both frontend and backend

🛠️ Tech Stack

Layer Technologies
Frontend Next.js, Tailwind CSS
Backend FastAPI, SQLAlchemy
Database PostgreSQL
AI Gemini API (Google) via LangChain
DevOps Docker, Render or self-host

📉 LangGraph

🚦 Getting Started

Prerequisites

  • Docker & Docker Compose
  • Node.js (v18+) for frontend local dev (optional)
  • Python 3.10+ (for backend local dev, optional)
  • PostgreSQL database (local/remote)

Clone the Repository

git clone https://github.com/masum184e/askiit.git
cd askiit

🔧 Setup Instructions

1. Docker Configuration for Database

# /askiit
# docker pull postgres:16
# docker rm -f askiit-db
docker run -d --name askiit-db -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_DB=askiit -p 5432:5432 -v askiit_pgdata:/var/lib/postgresql/data postgres:16
docker ps
docker exec -i askiit-db psql -U user -d askiit < ./server/database.sql
docker exec -i askiit-db psql -U user -d askiit < ./server/data.sql

Verify Data:

docker exec -it askiit-db psql -U user -d askiit
SELECT COUNT(*) FROM student;
SELECT COUNT(*) FROM spl;
SELECT COUNT(*) FROM achievement;
SELECT COUNT(*) FROM paper;

2. Environment Variables

Create .env files using these samples:

Frontend (client/.env)

NEXT_PUBLIC_API_URL=http://localhost:8000/api

Backend (server/.env)

DATABASE_URL=postgresql://user:password@localhost:5432/askiit
DB_URI_ASYNC=postgresql+asyncpg://user:password@localhost:5432/askiit
SECRET_KEY=your-super-secret-key
ALLOWED_HOSTS=*
GOOGLE_API_KEY=your-gemini-api-key

3. Local Development

Start the backend:

cd server
virtualenv venv
.\venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload

Start the frontend:

cd client
npm install
npm run dev

4. Dockerized Deployment

With Docker Compose (recommended):

docker-compose up --build
  • The client runs at http://localhost:3000
  • The API runs at http://localhost:8000

📚 Usage

  • Access frontend in browser and register/login as student or admin
  • Explore SPL project listings, internship tracking, and chatbot features
  • Use the admin panel (if enabled) for full management
  • Test AI Q&A in the chatbot interface

📝 API Documentation

  • Visit http://localhost:8000/docs for autogenerated Swagger/OpenAPI documentation.

🤝 Contribution

Contributions welcome! To get started:

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/awesome-feature)
  3. Commit your changes (git commit -m 'feat: add awesome feature')
  4. Push to the branch (git push origin feature/awesome-feature)
  5. Open a Pull Request

Please follow conventional commit messages and keep PRs focused.

💡Contribution Ideas

  • Update Prompt
  • Faculty Database
  • Question Database
  • Global Error Handling
    • Client
    • Server
  • No Result Found UI
  • Sort the response with recent update
  • Improve Pagination Performance
  • SPL
    • Filter By Batch
  • Student
  • Achivement

🪪 License

MIT

👤 Author / Contact

Developed by Masum Billah.

For issues or suggestions, please open an issue or contact via GitHub.

Empowering campus knowledge, together!

About

A university Q&A platform empowering students with instant answers, project insights, and internship tracking—all enhanced by AI.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors