{"id":30193612,"url":"https://github.com/iitzm1lly/ossms","last_synced_at":"2026-04-09T12:09:43.747Z","repository":{"id":307526302,"uuid":"1029506895","full_name":"iitzm1lly/ossms","owner":"iitzm1lly","description":"OSSMS - Office Supplies Stock Monitoring System for UST CICS OFFICE","archived":false,"fork":false,"pushed_at":"2025-07-31T16:44:47.000Z","size":1381,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-31T19:57:07.113Z","etag":null,"topics":["git","nodejs","rust","tauri"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iitzm1lly.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-31T06:39:20.000Z","updated_at":"2025-07-31T16:44:50.000Z","dependencies_parsed_at":"2025-07-31T20:09:15.596Z","dependency_job_id":null,"html_url":"https://github.com/iitzm1lly/ossms","commit_stats":null,"previous_names":["iitzm1lly/ossms"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/iitzm1lly/ossms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitzm1lly%2Fossms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitzm1lly%2Fossms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitzm1lly%2Fossms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitzm1lly%2Fossms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iitzm1lly","download_url":"https://codeload.github.com/iitzm1lly/ossms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitzm1lly%2Fossms/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270166108,"owners_count":24538445,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","nodejs","rust","tauri"],"created_at":"2025-08-13T02:00:59.053Z","updated_at":"2025-12-30T21:46:43.206Z","avatar_url":"https://github.com/iitzm1lly.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OSSMS - Office Supply Stock Management System\n\nA modern, cross-platform desktop application for managing office supplies and inventory, built with Next.js, Tauri, and SQLite.\n\n## 🚀 Features\n\n- **User Management**: Secure authentication and role-based access control (Admin, Staff, Viewer)\n- **Inventory Management**: Track supplies, quantities, and locations with intelligent stock status calculation\n- **Stock Movement**: Monitor stock in/out with detailed history and user attribution\n- **Advanced Reporting**: Generate low-stock alerts and movement reports with modern PDF exports\n- **Data Visualization**: Interactive charts and graphs for stock movement analysis\n- **Email Notifications**: Password reset functionality with SMTP support\n- **Cross-Platform**: Works on Windows, macOS, and Linux\n- **Offline-First**: Local SQLite database for reliable operation\n- **Modern UI**: Beautiful, responsive interface built with Tailwind CSS and shadcn/ui\n\n## 📋 Prerequisites\n\n- **Node.js** 18+ and npm\n- **Rust** 1.77+ and Cargo\n- **Git**\n\n### Installing Prerequisites\n\n#### Windows\n```powershell\n# Install Node.js from https://nodejs.org/\n# Install Rust\nwinget install Rust.Rust\n# or\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\n#### macOS\n```bash\n# Install Node.js\nbrew install node\n\n# Install Rust\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\n#### Linux\n```bash\n# Install Node.js\ncurl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -\nsudo apt-get install -y nodejs\n\n# Install Rust\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\n## 🛠️ Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd ossms\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Build the application**\n   ```bash\n   npm run tauri:build:clean\n   ```\n\n## 🚀 Quick Start\n\n### Development Mode\n```bash\nnpm run tauri dev\n```\n\n### Production Build\n```bash\n# Using the production build script (Recommended)\n.\\build-production.ps1\n\n# Or manually\nnpm run build\ncd src-tauri\ncargo build --release\n```\n\n### Clean Build (Recommended)\n```bash\n# Windows\n.\\build.ps1\n\n# Unix/Linux/macOS\n./build.sh\n```\n\n## 📦 Build Scripts\n\n| Script | Description | Use Case |\n|--------|-------------|----------|\n| `npm run dev` | Development server | Local development |\n| `npm run tauri dev` | Tauri development | Desktop app development |\n| `npm run build` | Next.js build | Frontend only |\n| `npm run tauri:build` | Tauri build | Production build |\n| `npm run tauri:build:clean` | Clean Tauri build | Remove build artifacts |\n| `npm run tauri:build:fresh` | Fresh Tauri build | Complete rebuild |\n| `.\\build-production.ps1` | Production build script | Automated production build |\n\n## 🏗️ Project Structure\n\n```\nossms/\n├── app/                    # Next.js app directory\n│   ├── (dashboard)/       # Dashboard routes\n│   │   ├── dashboard/     # Main dashboard\n│   │   ├── inventory/     # Inventory management\n│   │   ├── item-history/  # Stock movement history\n│   │   ├── reports/       # Reporting system\n│   │   └── users/         # User management\n│   ├── globals.css        # Global styles\n│   └── layout.tsx         # Root layout\n├── components/            # React components\n│   ├── ui/               # UI components (shadcn/ui)\n│   └── services/         # API services\n├── lib/                  # Utility functions\n│   ├── utils.ts          # Stock status calculation\n│   ├── permissions.ts    # Role-based access control\n│   └── actions.ts        # API actions\n├── src-tauri/           # Rust backend\n│   ├── src/             # Rust source code\n│   ├── Cargo.toml       # Rust dependencies\n│   └── tauri.conf.json  # Tauri configuration\n├── public/              # Static assets\n└── hooks/               # Custom React hooks\n```\n\n## 🔧 Configuration\n\n### Environment Variables\nCreate a `.env.local` file for local development:\n```env\nNEXT_PUBLIC_APP_NAME=OSSMS\nNEXT_PUBLIC_APP_VERSION=1.0.0\n```\n\n### Email Configuration (Optional)\nFor password reset functionality, update the hardcoded credentials in `src-tauri/src/main.rs`:\n\n```rust\n// Hardcoded email configuration\nconst SMTP_EMAIL: \u0026str = \"your-email@gmail.com\";  // Replace with your email\nconst SMTP_PASSWORD: \u0026str = \"your-app-password\";  // Replace with your app password\n```\n\n**Note**: For Gmail, you need to:\n1. Enable 2-Factor Authentication\n2. Generate an App Password (16 characters, no spaces)\n3. Replace the values in the code with your actual credentials\n\n### Database\nThe application uses SQLite for data storage. The database is automatically created at:\n- **Windows**: `%LOCALAPPDATA%\\.ossms\\ossms.db`\n- **macOS**: `~/Library/Application Support/.ossms/ossms.db`\n- **Linux**: `~/.local/share/.ossms/ossms.db`\n\n## 🧪 Development\n\n### Code Style\n- **Frontend**: TypeScript, ESLint, Prettier\n- **Backend**: Rust with clippy\n- **Styling**: Tailwind CSS with shadcn/ui components\n\n### Testing\n```bash\n# Run linting\nnpm run lint\n\n# Type checking\nnpx tsc --noEmit\n```\n\n### Database Development\nThe database schema is defined in `src-tauri/src/database.rs`. Sample data is automatically seeded on first run.\n\n## 🚀 Deployment\n\n### Building for Distribution\n```bash\n# Automated production build\n.\\build-production.ps1\n\n# Or manual build\nnpm run build\ncd src-tauri\ncargo build --release\n```\n\nThe executable will be created in `src-tauri/target/release/`:\n- **Windows**: `app.exe`\n- **macOS**: `app.app`\n- **Linux**: `app`\n\n### Distribution\n- **Windows**: Use the `.exe` file directly\n- **macOS**: Create a `.dmg` from the `.app` bundle\n- **Linux**: Package as `.deb`, `.rpm`, or `.AppImage`\n\n## 🐛 Troubleshooting\n\n### Build Issues\n1. **Memory Issues**: Use `npm run build:high-memory`\n2. **Rust Issues**: Run `rustup update` and `cargo clean`\n3. **Node Issues**: Clear cache with `npm run build:clean`\n\n### Database Issues\n```bash\n# Reset database (WARNING: This will delete all data)\n# Windows\nRemove-Item \"$env:LOCALAPPDATA\\.ossms\\ossms.db\"\n\n# Unix/Linux/macOS\nrm ~/.local/share/.ossms/ossms.db\n```\n\n### Common Errors\n- **\"Failed to parse Cargo.toml\"**: Check for duplicate sections\n- **\"Invalid next.config.mjs\"**: Remove deprecated options\n- **\"jobs may not be 0\"**: Fix `.cargo/config.toml` settings\n- **\"linking with rust-lld failed\"**: Ensure Tauri CLI is installed\n\n## 📚 API Reference\n\n### Authentication\n- `POST /api/login` - User authentication\n- `POST /api/forgot-password` - Request password reset\n- `POST /api/reset-password` - Reset password with token\n- `GET /api/users` - Get all users\n- `POST /api/users` - Create new user\n\n### Inventory\n- `GET /api/supplies` - Get all supplies\n- `POST /api/supplies` - Create new supply\n- `PUT /api/supplies/:id` - Update supply\n- `DELETE /api/supplies/:id` - Delete supply\n\n### History\n- `GET /api/history` - Get supply history\n- `DELETE /api/history/:id` - Delete history record\n\n### Reports\n- `GET /api/reports/low-stock` - Get low stock report\n- `GET /api/reports/stock-movement` - Get stock movement report\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n### Logo Usage\nThis software includes logos from the University of Santo Tomas and the College of Information and Computing Sciences. These logos are used for educational purposes only and are not part of the MIT license. See [LOGO_LICENSE.md](LOGO_LICENSE.md) for detailed usage guidelines and restrictions.\n\n## 🆘 Support\n\n- **Issues**: [GitHub Issues](https://github.com/your-repo/ossms/issues) *(Coming Soon)*\n- **Documentation**: [Wiki](https://github.com/your-repo/ossms/wiki) *(Coming Soon)*\n- **Discussions**: [GitHub Discussions](https://github.com/your-repo/ossms/discussions) *(Coming Soon)*\n\n### Alternative Support Options\n- **In-App Support**: Use the Support page within the application\n- **Email Support**: Contact your system administrator\n- **Local Documentation**: See [DOCUMENTATION.md](DOCUMENTATION.md) for detailed guides\n- **Data Backup**: See [BACKUP_GUIDE.md](BACKUP_GUIDE.md) for backup and recovery procedures\n- **Troubleshooting**: Check the [Troubleshooting](#-troubleshooting) section above\n\n## 🗺️ Roadmap\n\n- [ ] Multi-language support\n- [ ] Advanced reporting with charts\n- [ ] Barcode scanning\n- [ ] Cloud synchronization\n- [ ] Mobile app\n- [ ] API for external integrations\n- [ ] Configurable stock status thresholds\n- [ ] Advanced alerts and notifications\n\n---\n\n**OSSMS** - Making office supply management simple and efficient. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiitzm1lly%2Fossms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiitzm1lly%2Fossms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiitzm1lly%2Fossms/lists"}