In progress...
StoryLoom can generate bedtime stories using AI based on the child's age, likings, behaviors, and more. We use generative TTS to read the stories to the child.
storyloom/
├── apps/
│ ├── python/ # Python backend application
│ └── web/ # Next.js web application
├── package.json # Root package configuration
├── pnpm-workspace.yaml # pnpm workspace configuration
└── turbo.json # Turbo monorepo configuration
Before you begin, ensure you have the following installed:
- Node.js (v18 or later)
- pnpm (v8 or later)
- Python (v3.8 or later)
git clone https://github.com/<your-username>/storyloom.git
cd storyloom
pnpm install
Make a copy of the .env.example
file and name it .env
for each application under the apps/
directory.
cp apps/web/.env.example apps/web/.env
cp apps/python/.env.example apps/python/.env
Make sure to fill in the values for the environment variables.
Make sure your AWS credentials has the following managed policies:
- AmazonDynamoDBFullAccess
- AmazonAPIGatewayAdministrator
- AmazonS3FullAccess
- AWSCloudFormationFullAccess
- AWSLambda_FullAccess
- Create a two tables called
storyloom-users
andstoryloom-auth
in DynamoDB - Setup auth table to have partition key as
pk
and sort key assk
. You may also create a global secondary index on theemail
attribute. - Setup user table to have partition key as
email
.
turbo dev
- Open http://localhost:3000 in your browser
- You should see the Storyloom homepage
- Try signing in to test authentication
We welcome contributions! Here's how you can help:
- Report bugs or request features by creating an issue
- Submit code changes by making a pull request to solve existing issues
- Fork this repository
- Clone your fork
- Add the upstream remote:
git remote add upstream https://github.com/tiluckdave/storyloom.git
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes and test them
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
- Follow the existing code style and conventions
- Use TypeScript for type safety
- Write meaningful commit messages
Make sure to run turbo lint
and turbo check-types
to check for any errors.