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.local
file 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 modenpm run build
: Builds the app for productionnpm run start
: Starts the production servernpm run lint
: Runs ESLint checksnpm run lint:fix
: Auto-fixes lint issuesnpm 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
main
branch.
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.