2017-01-14 11:48:53 +01:00
# ibt2 - I'll be there, 2
2017-01-02 21:52:33 +01:00
2017-01-14 11:48:53 +01:00
**I'll be there, 2** is an oversimplified application to register attendees at a conference or event.
2017-01-02 21:52:33 +01:00
2017-01-19 22:51:13 +01:00
Basic workflow:
- if you want (not mandatory), login with your user; to create a new user, simply choose a username and a password. Benefit of logging in: only you or admins can edit/delete your entries.
- pick a date
2017-01-28 09:25:07 +01:00
- choose the group you want to join or the name of a new group
- write your name and, optionally, a note
2017-01-19 22:51:13 +01:00
- rinse and repeat
2017-02-27 21:01:10 +01:00
It's recommended to login with username **admin** and password **ibt2** , go to your personal page and change the password, if you've just installed ibt2.
The *admin* user can change some global settings and also grant super cow powers to any other user.
2017-01-19 22:51:13 +01:00
2017-01-28 09:25:07 +01:00
For the notes, you can use the [Markdown ](https://daringfireball.net/projects/markdown/ ) syntax.
2017-11-30 18:43:27 +01:00
2017-01-20 19:20:41 +01:00
## Install, run, develop and debug
2017-01-02 21:52:33 +01:00
2017-11-30 18:43:27 +01:00
## Docker
Just run:
docker-compose up
## Old-fashioned installation
2017-01-19 22:51:13 +01:00
To install it:
``` bash
wget https://bootstrap.pypa.io/get-pip.py
2017-02-12 14:16:25 +01:00
sudo python3 get-pip.py
2017-02-12 14:46:33 +01:00
# if you want to install these modules for an unprivileged user, add --user and remove "sudo";
# if you want to upgrade the versions already present in the system, also add --upgrade
2017-02-12 14:16:25 +01:00
sudo pip3 install tornado
sudo pip3 install pymongo
2017-01-19 22:51:13 +01:00
git clone https://github.com/raspibo/ibt2
cd ibt2
```
Installation of [Node.js ](https://nodejs.org/en/download/ ) and npm is left as an exercise to the reader.
2017-01-14 11:48:53 +01:00
To run it:
2017-01-02 21:52:33 +01:00
``` bash
2017-01-28 09:28:57 +01:00
# install dependencies (one time only, or every time the dependencies in package.json change)
2017-01-02 21:52:33 +01:00
npm install
2017-01-20 19:06:57 +01:00
# build for production with minification (each time the sources changes)
2017-01-14 11:48:53 +01:00
npm run build
# run the Python webserver at localhost:3000
npm run server
```
2017-01-21 16:47:07 +01:00
Now you can **point your browser to [http://localhost:3000/](http://localhost:3000/)** (that's the server for production)
2017-01-20 19:20:41 +01:00
If you want, you can **share a link to a specific day** , specifying it in the *yyyy-mm-dd* format, like: http://localhost:3000/#/day/2017-01-20
You can also **run the server in https** , putting in the *ssl* directory two files named *ibt2_key.pem* and *ibt2_cert.pem*
2017-11-30 18:43:27 +01:00
## Run a development environment
2017-01-14 11:48:53 +01:00
``` bash
# install dependencies (one time only)
npm install
# run the Python web server using a testing database
npm run devserver &
2017-01-02 21:52:33 +01:00
# serve with hot reload at localhost:8080
npm run dev
2017-01-19 22:51:13 +01:00
# only when the devserver is running, you can also run the testsuite
2017-02-12 14:16:25 +01:00
python3 ./tests/ibt2_tests.py
2017-01-02 21:52:33 +01:00
```
2017-01-21 16:47:07 +01:00
Your browser will automatically open [http://localhost:8080/ ](http://localhost:8080/ ) (that's the server for development)
2017-01-20 19:20:41 +01:00
2017-01-19 22:51:13 +01:00
2017-11-30 18:43:27 +01:00
# Development
2017-01-19 22:51:13 +01:00
See the *docs/DEVELOPMENT.md* file for more information about how to contribute.
2017-11-30 18:43:27 +01:00
## Technological stack
2017-01-14 11:48:53 +01:00
2017-03-13 21:55:31 +01:00
- [VueJS ](https://vuejs.org/ ) 2 for the webApp
2017-01-14 11:48:53 +01:00
- [Vue Material ](https://vuematerial.github.io/ ) for the UI components
2017-01-21 16:47:07 +01:00
- [Vue Datepicker ](https://github.com/charliekassel/vuejs-datepicker ) for the datepicker
2017-01-28 09:25:07 +01:00
- [Vue Markdown ](https://www.npmjs.com/package/vue-markdown ) for parsing the Markdown syntax
2017-01-14 11:48:53 +01:00
- [Tornado web ](http://www.tornadoweb.org/ ) as web server
- [MongoDB ](https://www.mongodb.org/ ) to store the data
2017-02-26 20:13:47 +01:00
- [Python 3 ](https://www.python.org/ ) is required
2017-01-14 11:48:53 +01:00
2017-01-19 22:51:13 +01:00
The web part is incuded; you need to install Node.js, Tornado, MongoDB and the pymongo module on your system (no configuration needed).
2017-01-14 11:48:53 +01:00
2017-11-30 18:43:27 +01:00
# Other projects
2017-04-25 09:08:22 +02:00
Need something more sophisticated, that allows you to manage tickets to an event? Try [EventMan(ager) ](https://github.com/raspibo/eventman )
2017-11-30 18:43:27 +01:00
# License and copyright
2017-01-14 11:48:53 +01:00
2019-05-23 18:52:09 +02:00
Copyright 2016-2019 Davide Alberani < da @ erlug . linux . it > , RaspiBO < info @ raspibo . org >
2017-01-14 11:48:53 +01:00
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.