No description
- Go 50.7%
- Vue 42.9%
- JavaScript 5.3%
- SCSS 0.4%
- CSS 0.2%
- Other 0.4%
|
Lukas Matt
ddf73bb911
Migrate UI from Vue Material to Tailwind CSS
Replace all Vue Material (md-*) components across the frontend with
a modern, responsive Tailwind CSS implementation. All business logic,
API calls, and routing are preserved unchanged.
Components migrated:
- Register.vue: auth form, Composition API, password mismatch validation
- Setting.vue: Untappd sync dialog, correct inject('globalData') usage
- parts/Rating.vue: progress bar + star row, replaced md-progress-bar
- parts/ActionBar.vue: like/comment/reply actions, replaced md-layout
- parts/Checkin.vue: card layout, image fallback, location display
- parts/IndexItem.vue: alternating layout via isEven computed
- Index.vue: hero section, feature rows, CTA button
- User.vue: profile hero, stat counters, badge grid with CSS tooltips,
loading skeleton, fixed v-html + tooltip coexistence
- parts/Search.vue: custom autocomplete dropdown, keyboard navigation,
debounced input, Untappd/local toggle
- CreateCheckin.vue: collapsible sections, file inputs, location dialog,
replaced vue-browser-geolocation with native API
General changes:
- All components converted from Options API to Composition API
- Replaced / this. with inject() and useRouter()
- Replaced Font Awesome and Material icons with inline SVGs
- Replaced moment.js with dayjs (already used in project)
- Added loading spinners, empty states and skeleton placeholders
- Improved accessibility: aria roles, labels, keyboard nav, focus rings
- Fixed interval memory leak in Setting.vue via onUnmounted cleanup
- Fixed badge sort comparator in User.vue (boolean -> numeric)
|
||
|---|---|---|
| activity | Send checkin to untappd if requested | |
| badges | Apply workaround for badges | |
| crypto | Add user password reset | |
| database | Fix untappd worker | |
| handlers | Add photo upload to checkin's | |
| public | Vuejs | |
| src | Migrate UI from Vue Material to Tailwind CSS | |
| vocab_builder | Add photo upload to checkin's | |
| workers | Fix rating in untappd worker | |
| .gitignore | Update .gitignore | |
| babel.config.js | Vuejs | |
| config.ini.example | Rename Unmappd to Socialtap | |
| Dockerfile | Fix Docker build and webpack configuration for Vue 3 | |
| go.mod | Implement first badge approach | |
| go.sum | Implement first badge approach | |
| LICENSE | Initial commit | |
| main.go | Fix untappd worker | |
| package.json | Migrate UI from Vue Material to Tailwind CSS | |
| postcss.config.js | Refactor the existing vuejs components | |
| README.md | Update README.md | |
| shell.nix | Add nix dependency shell | |
| tailwind.config.js | Refactor the existing vuejs components | |
| vue.config.js | Fix Docker build and webpack configuration for Vue 3 | |
| yarn.lock | Refactor the existing vuejs components | |
Socialtap - drink socially
Build
Compile assets
yarn install
yarn build
Compile binary
go build -o socialtap
GLIBC
If you have to compile for a certain libc version you can do it by running:
docker run -v $HOME/.golang:/go -v $(pwd):/build --rm -ti golang:buster bash
> cd /build && go build -o socialtap
Docker image
docker build -t socialtap/server:dev .
Installation
Yarn
If used in development yarn serve will not work since the websocket is not considered secure. To fix this in a pure development environment you can disable it in Firefox (about:config):
network.websocket.allowInsecureFromHTTPS = True
Database
For development purposes you can run a local postgres database like this:
docker run -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_DB=socialtap -ti postgres
Create the database if not done in the previous step:
create database socialtap;
\c socialtap
Create the database in Postgres and configure authentication according the settings in your config.ini.
Then install the following extensions:
Text similarity measurement and index searching based on trigrams
create extension pg_trgm;
Cryptographic functions
create extension pgcrypto;
Done! The application server will create the tables and settings automatically.