Assessment Tool
Tilli Assessment is an open-source Next.js application for conducting interactive emotional assessments in a child-friendly interface. It uses Appwrite for authentication and data storage.
Table of Contents
- Features
- Prerequisites
- Local Setup
- Available Scripts
- Environment Configuration
- Testing and Linting
- Contributing
- Community
- License
Features
- Built with Next.js 14 and TypeScript
- Tailwind CSS for styling
- Appwrite for authentication and database
- Interactive, multi-step assessment flow
- Responsive design for desktop and mobile
Prerequisites
- Node.js >= 20.x (recommend using nvm)
- npm, yarn, pnpm, or bun
- An Appwrite account with:- A project created
- A database containing two collections:- Participants
- Assessments
 
 
Local Setup
- Clone the repository:git clone https://github.com/<owner>/tilli-assessment-tool.git
 cd tilli-assessment-tool
- Install dependencies:npm install
 # or
 yarn install
 # or
 pnpm install
- Create a .env.localfile in the project root with the following content:NEXT_PUBLIC_APPWRITE_PROJECT_ID=<Your Appwrite Project ID>
 NEXT_PUBLIC_APPWRITE_DATABASE_ID=<Your Database ID>
 NEXT_PUBLIC_APPWRITE_PARTICIPANTS_COLLECTION_ID=<Participants Collection ID>
 NEXT_PUBLIC_APPWRITE_ASSESSMENTS_COLLECTION_ID=<Assessments Collection ID>
- Start the development server:npm run dev
- Open http://localhost:3000 in your browser.
Available Scripts
In the project directory, you can run:
- npm run dev: Runs Next.js in development mode
- npm run build: Builds the app for production
- npm run start: Starts the production server
- npm run lint: Runs ESLint checks
- npm run lint:fix: Auto-fixes lint issues
- npm test: Runs the Jest test suite
Environment Configuration
| Variable | Description | 
|---|---|
| NEXT_PUBLIC_APPWRITE_PROJECT_ID | Appwrite project ID | 
| NEXT_PUBLIC_APPWRITE_DATABASE_ID | Appwrite database ID | 
| NEXT_PUBLIC_APPWRITE_PARTICIPANTS_COLLECTION_ID | Appwrite participants collection ID | 
| NEXT_PUBLIC_APPWRITE_ASSESSMENTS_COLLECTION_ID | Appwrite assessments collection ID | 
Testing and Linting
- Jest for unit and integration tests
- React Testing Library for component testing
- ESLint and Prettier for code quality and formatting
Continuous Integration
On every push or pull request to main, GitHub Actions runs the test suite with coverage and uploads a full HTML coverage report as an artifact.
To download the coverage report:
- Go to the Actions tab of this repository.
- Select the latest CI workflow run.
- In the Artifacts section, download coverage-report (contains the HTML report).
Contributing
We welcome contributions from the community:
- Fork the repository.
- Create a new branch: git checkout -b feature/your-feature.
- Make your changes and commit: git commit -m 'Add new feature'.
- Push to your branch: git push origin feature/your-feature.
- Open a Pull Request against the mainbranch.
Please ensure that your code follows the existing style guidelines and that all tests pass.
Community
- Submit bugs and feature requests via GitHub Issues.
- Join discussions at GitHub Discussions.
- Connect with other contributors on our Discord (link pending).