- Table of Contents
- Overview
- Getting Started
- Running the Project
- Documentation
- Tech Stack
- Code Organization
Nudge-it is a collaboration tool designed to help student teams maintain accountability and build healthier working relationships. It supports fair contribution through a peer-verification task system, an escalating nudge feature to address delays, and a confrontation-coaching chatbot that encourages constructive communication. By increasing transparency and easing conflict, Nudge-it aims to foster healthy teamwork and reduces free-riding in group projects.
- Clone the code
git clone https://github.com/nadiarvi/nudge-it.git cd nudge-it - Install dependencies
- Backend:
cd backend yarn install - Frontend:
cd frontend npm install
- Backend:
- Environment Setup
- Backend: Create a
.envfile inbackend/(seebackend/README.mdfor details) - Frontend: Create a
.envfile infrontend/(seefrontend/README.mdfor details)
- Backend: Create a
- Backend:
cd backend yarn start - Frontend:
cd frontend npx expo startNote: To run the app on your phone, download the Expo Go app from the App Store or Google Play. Scan the QR code shown in your terminal after running the frontend to open the app on your device.
- Backend API: See
backend/README.mdfor endpoints, request/response examples, and setup instructions. - Frontend Implementation: See
frontend/README.mdfor frontend implementation details and set up instructions.
- Backend
- Framework: Node.js with Express.js
- Database: MongoDB
- Input Validation: express-validator
- AI Services: OpenAI API
- Email Services: nodemailer
- Push Notifications: expo-server-sdk
- Environment Config: dotenv
- AI Assistance: GitHub Copilot, ChatGPT, Gemini
- Frontend
- Framework: React Native with Expo
- Navigation: React Navigation
- Backend Communication: Axios
- Date & Time Handling: Moment.js
- Environment Config: dotenv
- Type Checking & Linting: TypeScript, ESLint, Prettier
- AI Assistance: GitHub Copilot, ChatGPT, Claude.ai, Gemini
nudge-it/
├── backend/
│ ├── controllers/ # Route logic for API endpoints
│ ├── models/ # Mongoose schemas (e.g., User)
│ ├── routes/ # Express route definitions
│ ├── services/ # OpenAI and nudge logic
│ ├── utils/ # Utility functions
│ ├── middleware/ # Auth middleware
│ ├── config/ # DB config
│ ├── server.js # Express app entry point
│ └── README.md # Backend API documentation
├── frontend/
│ ├── app/ # Main app screens and navigation
│ ├── components/ # UI and icon components
│ ├── contexts/ # React context providers
│ ├── hooks/ # Custom hooks
│ ├── api/ # API client logic
│ ├── assets/ # Images and static files for frontend
│ ├── constants/ # Theme and data constants
│ ├── types/ # TypeScript types
│ ├── utils/ # Utility functions
│ ├── README.md # Frontend usage documentation
│ └── ...
├── assets/ # Images and static files for README
└── README.md # Project documentation
