A command-line interface (CLI) application for managing todo lists with MongoDB database and Google OAuth authentication.
This Todo CLI application allows users to create, manage, and synchronize todo lists across devices. It uses MongoDB for data storage and Google OAuth2 for user authentication, providing a secure and scalable solution for task management.
- Create and manage multiple todo lists
- Add, complete, and remove tasks
- Filter tasks by completion status
- Google OAuth authentication
- MongoDB backend for data persistence
- Synchronization capabilities (push/pull changes)
- Cross-platform compatibility
RustyTasks/
│
├── src/
│ ├── main.rs
│ ├── cli.rs
│ ├── commands.rs
│ ├── db.rs
│ ├── auth.rs
│ ├── models.rs
│ └── error.rs
│
├── Cargo.toml
├── Cargo.lock
├── .env
└── README.md
clap: Command line argument parsingtokio: Asynchronous runtimemongodb: MongoDB driveroauth2: OAuth2 authenticationdotenv: Environment variable managementthiserror: Error handling
- Clone the repository:
admin@keir> git clone https://github.com/manishyoudumb/RustyTasks
admin@keir> cd RustyTasks
- Install Rust (if not already installed):
admin@keir> curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Set up environment variables:
Create a
.envfile in the project root with the following:
MONGODB_URI=mongodb+srv://<cluster>:<password>@<acct_holder>.1hrcu3o.mongodb.net/<database_name?retryWrites=true&w=majority
GOOGLE_CLIENT_ID=YOUR_ID
GOOGLE_CLIENT_SECRET=YOUR_SECRET_KEY
- Testing all the UNIT TESTS:
admin@keir> cargo test
- Build the Project :
admin@keir> cargo build --release
- Adding path to env variables :
admin@keir> $Env:PATH += ";$(Get-Location)\target\release"
- Run --help for assistance using the application:
admin@keir> todo --help
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
