A smart Calendar Assistant built with Node.js, PostgreSQL, and Redis. Manage your schedules, sync with Google Calendar, and automate your time management effortlessly.
- Docker and Docker Compose
- Node.js (v16 or higher)
- Git
- Clone the repository:
git clone <repository-url>
cd calento.space- Copy environment variables:
cp .env.example server/.env-
Update the environment variables in
server/.envwith your configuration. -
Start the services using Docker Compose:
cd provision
docker-compose up -d- Install dependencies and start the development server:
# Install server dependencies
cd server
npm install
npm run dev
# Install client dependencies (in another terminal)
cd client
npm install
npm startcalento.space/
├── client/ # Frontend application
├── server/ # Backend API
├── provision/ # Docker configuration
├── data/ # Database data (gitignored)
│ └── redis/ # Redis data
├── docs/ # Documentation
└── README.md
Copy .env.example to server/.env and configure:
DB_USER- PostgreSQL usernameDB_PASSWORD- PostgreSQL passwordDB_NAME- Database nameREDIS_PASSWORD- Redis passwordREDIS_HOST- Redis host (default: localhost)REDIS_PORT- Redis port (default: 6379)REDIS_DB- Redis database number
# Start all services
make up
# Stop all services
make down
# View logs
make logs
# Reset database
make reset-db
# Install dependencies
make installThe application uses PostgreSQL as the primary database and Redis for caching and sessions.
- PostgreSQL runs on port
5432 - Redis runs on port
6379 - Data is persisted in the
data/directory
- postgres: PostgreSQL 15 Alpine
- redis: Redis Alpine
API documentation is available at /docs when the server is running.
# Run tests
npm test
# Run tests with coverage
npm run test:coverage- Build the application:
npm run build- Deploy using Docker:
docker-compose -f docker-compose.prod.yml up -d- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need help, please open an issue or contact the development team.