A modern, high-performance web interface for ResourceSpace digital asset management system with extensive features for professional media management.
- Modern UI: Clean, responsive interface with dark/light theme support
- High-Performance: Redis caching, lazy loading, and optimized API calls
- Advanced Search: Multiple search interfaces including guided wizard and enterprise search
- Collections: Full collection management with multiple view modes
- Annotations: Universal annotation system with drawing tools for images and videos
- Video Support: Professional video player with frame-by-frame navigation
- Batch Operations: Efficient handling of multiple resources
- Quick Search: Instant search from header bar
- Advanced Search Modal: Enterprise-grade filtering with metadata fields
- Guided Search Wizard: Step-by-step search building for complex queries
- Metadata Click Search: Quick filtering by clicking any metadata value
- Search Presets: Pre-built search templates
- Saved Searches: Save and reuse complex searches
- Upload System: Drag-and-drop file uploads with progress tracking
- Metadata Editing: In-place editing with field validation
- Alternative Files: Manage different versions and annotations
- Download Options: Multiple format and size options
- Related Resources: Automatic discovery of similar content
- Custom Dashboard: Drag-and-drop tile arrangement
- User Profiles: Profile pictures and bio management
- Theme Preferences: Persistent dark/light mode
- Saved Collections: Personal collection management
- Upload History: Track and manage your uploads
- Admin Panel: Comprehensive settings management
- Branding: Custom logos and color schemes
- System Monitoring: Cache stats and ResourceSpace health
- Layout Control: Toggle features on/off
- User Management: Control access and permissions
- React 18 with Vite for fast development
- TailwindCSS for responsive styling
- Framer Motion for smooth animations
- React Query for efficient data fetching
- Video.js for professional video playback
- MarkerJS 3 for annotation tools
- Node.js with Express
- Redis for high-performance caching
- SQLite for local data storage
- Docker for containerization
- Nginx for production serving
- Docker and Docker Compose
- Git
- Node.js 18+ (for local development only)
- Clone the repository
git clone https://github.com/yourusername/rs-art-station.git
cd rs-art-station- Set up environment variables
cp .env.example .env
# Edit .env with your ResourceSpace credentials- Start with Docker Compose
docker-compose up -d- Access the application
- ResourceBuddy: http://localhost:3002
- Backend API: http://localhost:3003
- Cache API: http://localhost:8000
- Backend Setup
cd backend
npm install
npm run dev- Frontend Setup
cd web-ui
npm install
npm run dev- Cache Service (Optional)
cd services/cache_api
pip install -r requirements.txt
python main.pyThe main .env file in the root directory contains all configuration. Key variables:
RS_API_URL: Your ResourceSpace API endpointRS_API_KEY: ResourceSpace API key (get from user account)RS_USER: ResourceSpace usernameVITE_BACKEND_URL: Backend server URLVITE_DEMO_MODE: Enable demo mode without ResourceSpace
See .env.example for all available options.
The docker-compose.yml includes:
- Frontend web UI (port 3002)
- Backend API server (port 3003)
- Redis cache (port 6379)
- Cache API service (port 8000)
All project documentation is organized in the /docs folder:
- Setup Guide - Detailed installation and configuration
- Features - Feature documentation and user guides
- Technical Docs - Architecture and implementation details
- API Reference - API documentation and integration guides
- Development - Development workflows and testing
See the Documentation Index for a complete overview.
This project requires a ResourceSpace installation. It can work with:
- Self-hosted ResourceSpace
- ResourceSpace cloud instances
- Docker-based ResourceSpace
The integration uses ResourceSpace's API for all operations, ensuring compatibility with existing workflows and permissions.
- Build the production image
docker build -t resourcebuddy .- Run with environment variables
docker run -d \
-p 80:80 \
--env-file .env \
--name resourcebuddy \
resourcebuddy- Build the frontend
cd web-ui
npm run build- Set up the backend
cd backend
npm install --production
NODE_ENV=production node server.js- Configure Nginx (see
config/nginx.conf)
- API keys are never exposed to the frontend
- All ResourceSpace API calls are proxied through the backend
- User sessions are managed securely
- CORS is properly configured
- Input validation on all user inputs
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add 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.
- Built for the ResourceSpace community
- Inspired by modern DAM interfaces
- Special thanks to all contributors
- Alternative file thumbnails may not display if ResourceSpace preview generation is slow
- Some metadata field types may need additional configuration
- Video annotations are experimental
- Create an issue on GitHub
- Check the documentation
- Join the ResourceSpace community forums