A full-stack application enabling students to ask questions anonymously and get answers from experts.
- Anonymous Question Submission: Students can ask questions without requiring login
- Expert Dashboard: Experts can view and answer student questions
- FAQ Browsing: Browse through previously answered questions
- Scalable Architecture: Separate backend and frontend for easy maintenance
- SQLite Database: Lightweight, portable database with no setup required
- Node.js with Express.js
- SQLite database
- REST API
- Input validation with express-validator
- React.js with TypeScript
- Axios for API calls
- Modern UI components
- Responsive design
college-qa-platform/
├── backend/ # Node.js Express backend
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── database.js # Database setup
│ ├── server.js # Main server file
│ └── package.json # Dependencies
├── frontend/ # React TypeScript frontend
├── docs/ # Documentation
└── README.md # This file
- Node.js 14 or higher
- npm or yarn
cd backend
npm install
npm run devcd frontend
npm install
npm startPOST /api/questions- Submit a new questionGET /api/questions- Get all questionsGET /api/questions/:id- Get specific question with answersGET /api/questions/unanswered- Get unanswered questionsGET /api/questions/status/:status- Get questions by statusGET /api/questions/category/:category- Get questions by categoryGET /api/questions/search?keyword=...- Search questionsPUT /api/questions/:id/status?status=...- Update question statusGET /api/questions/stats- Get question statisticsDELETE /api/questions/:id- Delete question
POST /api/answers/question/:questionId- Submit an answerGET /api/answers/question/:questionId- Get answers for questionPUT /api/answers/:id/helpful- Mark answer as helpfulPUT /api/answers/:id/verify- Verify answer (experts only)GET /api/answers/verified- Get verified answersGET /api/answers/helpful- Get most helpful answers
The application uses SQLite database which is created automatically when the server starts. No database setup is required.
Database file: backend/college_qa.db
cd backend
npm run dev # Uses nodemon for auto-restartcd frontend
npm start # React development servercd backend
npm startcd frontend
npm run build- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License.