https://github.com/aryaghan-mutum/housing-app
A cross-platform desktop GUI application for housing and dining management. Features secure authentication, furniture inventory tracking, and data export capabilities.
https://github.com/aryaghan-mutum/housing-app
cross-platform desktop-app furniture-inventory gui housing-management inventory-management linux lisp macos racket racket-gui windows
Last synced: 2 months ago
JSON representation
A cross-platform desktop GUI application for housing and dining management. Features secure authentication, furniture inventory tracking, and data export capabilities.
- Host: GitHub
- URL: https://github.com/aryaghan-mutum/housing-app
- Owner: aryaghan-mutum
- Created: 2025-12-21T18:59:15.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-12-21T19:30:11.000Z (6 months ago)
- Last Synced: 2025-12-23T07:59:28.024Z (6 months ago)
- Topics: cross-platform, desktop-app, furniture-inventory, gui, housing-management, inventory-management, linux, lisp, macos, racket, racket-gui, windows
- Language: Racket
- Homepage:
- Size: 33.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Housing & Dining Application
A cross-platform **desktop GUI application** built with Racket for managing housing and dining services in residence halls.



## Features
- 🔐 **Secure Authentication** - User login with attempt limiting and lockout protection
- 🏠 **Dashboard Interface** - Modern card-based navigation with quick stats
- 🪑 **Furniture Inventory** - Browse, filter, and search furniture by building/floor/room
- 🔧 **Maintenance Tracker** - Track and manage maintenance requests
- 📊 **Reports & Analytics** - Generate inventory and activity reports
- ⚙️ **Settings Management** - Customize themes, notifications, and preferences
- 📤 **Data Export** - Export inventory data to CSV format
- 🎨 **Themed UI** - Consistent styling with customizable theme
## Project Structure
```
housing-app/
├── main.rkt # Application entry point
├── info.rkt # Package metadata
├── src/
│ ├── core/
│ │ ├── config.rkt # Configuration settings
│ │ └── database.rkt # Database operations
│ ├── ui/
│ │ └── theme.rkt # Colors, fonts, UI helpers
│ ├── views/
│ │ ├── login.rkt # Login form
│ │ ├── dashboard.rkt # Main dashboard
│ │ ├── furniture-browser.rkt # Inventory browser
│ │ └── dialogs/
│ │ ├── about-dialog.rkt # About dialog
│ │ ├── settings-dialog.rkt # Settings dialog
│ │ ├── reports-dialog.rkt # Reports dialog
│ │ └── maintenance-dialog.rkt # Maintenance tracker
│ └── tests/
│ └── test-config.rkt # Unit tests
└── .github/
└── workflows/
├── ci.yml # CI pipeline
├── release.yml # Release workflow
└── auto-version.yml # Auto-versioning
```
## Requirements
- Racket 8.0 or higher
- Required packages:
- `gui-lib` (included with Racket)
- `db` (for database connectivity)
## Installation
1. Install Racket from https://racket-lang.org/
2. Clone the repository:
```bash
git clone https://github.com/aryaghan-mutum/housing-app.git
cd housing-app
```
3. Install required packages:
```bash
raco pkg install db
```
## Running the Application
```bash
racket main.rkt
```
Or from DrRacket, open `main.rkt` and click Run.
### Demo Mode
The application runs in **demo mode** by default, allowing you to explore all features without a database connection.
**Demo Credentials:**
- Username: `test` / Password: `test`
- Username: `admin` / Password: `admin`
To connect to a real database, edit `src/core/config.rkt` and set `demo-mode?` to `#f`.
## Configuration
Edit `src/core/config.rkt` to customize:
```racket
;; Application settings
(define app-name "Housing & Dining")
(define app-version "2.0.0")
;; Database connection (when demo-mode? is #f)
(define db-server "YOURSERVER\\SQLEXPRESS")
(define db-name "HousingDB")
(define db-user "sa")
(define db-password "yourpassword")
;; Security settings
(define max-login-attempts 3)
(define lockout-duration-seconds 7200) ; 2 hours
;; Set to #f to use real database
(define demo-mode? #t)
```
## Development
### Running Tests
```bash
cd tests
racket test-config.rkt
```
### Building Executable
```bash
raco exe -o housing-app main.rkt
```
### Creating Distribution
```bash
raco distribute dist housing-app
```
## Architecture
This is a **native desktop GUI application** using Racket's `racket/gui` framework, which provides:
- Cross-platform support (Windows, macOS, Linux)
- Native look and feel on each platform
- No web browser or server required
- Direct system integration
## Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'feat: add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
**Commit Prefixes for Auto-versioning:**
- `feat:` - New features (minor version bump)
- `fix:` - Bug fixes (patch version bump)
- `major:` or `BREAKING CHANGE` - Breaking changes (major version bump)
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Author
**Anurag Muthyam** - [GitHub](https://github.com/aryaghan-mutum)
## Acknowledgments
- Converted from an original C# Windows Forms application
- Built with [Racket](https://racket-lang.org/)