A Minecraft Fabric mod that connects the game with ATProtocol ⛏️
1# AppView Documentation Index
2
3## Overview
4The AppView feature enables displaying Minecraft player data on AT Protocol, supporting leaderboards, achievements, player profiles, and community trends.
5
6## Documentation Files
7
8### Getting Started
9- **[APPVIEW_QUICKSTART.md](APPVIEW_QUICKSTART.md)** - Quick start guide for server operators
10 - Setup instructions
11 - Configuration
12 - Troubleshooting
13 - Common integration patterns
14
15### Comprehensive Guide
16- **[APPVIEW.md](APPVIEW.md)** - Complete AppView documentation
17 - Architecture overview
18 - Full API reference with examples
19 - Implementation examples
20 - Production deployment guide
21 - Performance optimization
22 - Monitoring and troubleshooting
23
24### Feature Summary
25- **[APPVIEW_COMPLETION.md](APPVIEW_COMPLETION.md)** - Feature completion summary
26 - What was implemented
27 - Technical details
28 - Usage examples
29 - Roadmap progress
30
31### Code Examples
32- **[examples/AppViewExample.kt](examples/AppViewExample.kt)** - Working code examples
33 - 10 different usage scenarios
34 - Complete end-to-end workflow
35 - Best practices demonstrated
36
37## Quick Reference
38
39### API Endpoints
40
41| Endpoint | Purpose | Example |
42|----------|---------|---------|
43| GET /health | Health check | `curl http://localhost:8080/health` |
44| GET /player/{uuid} | Player profile | `curl http://localhost:8080/player/550e8400...` |
45| GET /player/{uuid}/stats | Stats history | `curl http://localhost:8080/player/.../stats` |
46| GET /player/{uuid}/achievements | Achievement history | `curl http://localhost:8080/player/.../achievements` |
47| GET /leaderboard/{stat} | Top players for statistic | `curl http://localhost:8080/leaderboard/minecraft.mined.oak_log` |
48| GET /search?q={query} | Player search | `curl http://localhost:8080/search?q=Alice` |
49| GET /trending/achievements | Trending achievements | `curl http://localhost:8080/trending/achievements` |
50| GET /stats/summary/{uuid} | Stats summary | `curl http://localhost:8080/stats/summary/550e8400...` |
51
52### Core Classes
53
54| Class | Purpose | Location |
55|-------|---------|----------|
56| AppViewService | Indexing and querying | `atproto/server/AppViewService.kt` |
57| AppViewHttpServer | REST API endpoints | `atproto/server/AppViewHttpServer.kt` |
58| PlayerProfileView | Player profile data model | AppViewService.kt |
59| PlayerStatsView | Stats data model | AppViewService.kt |
60| AchievementView | Achievement data model | AppViewService.kt |
61| LeaderboardEntryView | Leaderboard entry | AppViewService.kt |
62
63## Implementation Roadmap
64
65### Phase 1: Basic Setup ✅ COMPLETE
66- [x] Implement indexing service
67- [x] Create REST API endpoints
68- [x] Write documentation
69
70### Phase 2: Production (Next Steps)
71- [ ] Implement database backend (PostgreSQL)
72- [ ] Set up Firehose subscription
73- [ ] Add Redis caching
74- [ ] Deploy to cloud
75
76### Phase 3: Community Features
77- [ ] Build web dashboard UI
78- [ ] Create Bluesky custom feeds
79- [ ] Implement real-time updates
80- [ ] Add advanced analytics
81
82## Integration Examples
83
84### Bluesky Custom Feed
85```javascript
86// Create a feed of trending achievements
87const achievements = await fetch('/trending/achievements').then(r => r.json());
88```
89
90### Web Dashboard
91```html
92<!-- Display leaderboard -->
93<div id="leaderboard"></div>
94<script>
95 fetch('/leaderboard/minecraft.mined.oak_log')
96 .then(r => r.json())
97 .then(data => renderLeaderboard(data));
98</script>
99```
100
101### Mobile App
102```python
103# Query player stats
104response = requests.get('https://appview.example.com/player/{uuid}')
105profile = response.json()['data']
106```
107
108## Deployment Checklist
109
110- [ ] Database set up and tested
111- [ ] Firehose subscription configured
112- [ ] Caching layer (Redis) deployed
113- [ ] SSL/HTTPS enabled
114- [ ] CORS configured for Bluesky
115- [ ] Rate limiting enabled
116- [ ] Logging configured
117- [ ] Monitoring alerts set up
118- [ ] Backups configured
119- [ ] Load testing completed
120- [ ] AppView registered in AT Protocol registry
121
122## Support & Resources
123
124### Documentation
125- [AT Protocol Documentation](https://atproto.com/)
126- [Lexicon Specifications](https://atproto.com/specs/lexicon)
127- [XRPC Reference](https://atproto.com/specs/xrpc)
128- [Bluesky API Docs](https://docs.bsky.app/)
129
130### Community
131- Report bugs: Issues page
132- Ask questions: Discussions
133- Share ideas: Pull requests
134
135### Related Files
136- [Lexicon Schemas](../src/main/resources/lexicons/README.md)
137- [Project README](../README.md)
138- [Security Guide](../README.md#security-features)
139
140## FAQ
141
142**Q: How do I deploy the AppView?**
143A: See [APPVIEW_QUICKSTART.md](APPVIEW_QUICKSTART.md#setup-steps)
144
145**Q: What database should I use?**
146A: PostgreSQL is recommended. See deployment section of [APPVIEW.md](APPVIEW.md#recommended-stack)
147
148**Q: How do I integrate with Bluesky?**
149A: See integration examples in [APPVIEW.md](APPVIEW.md#integration-with-at-protocol-clients)
150
151**Q: What about player privacy?**
152A: See privacy section of [APPVIEW.md](APPVIEW.md#data-privacy)
153
154**Q: How do I subscribe to real-time updates?**
155A: See production deployment section of [APPVIEW.md](APPVIEW.md#production-deployment)
156
157---
158
159**Last Updated**: April 2026
160**Status**: Feature Complete ✅
161**Production Ready**: Yes, with recommendations in deployment guides