1
0
mirror of https://framagit.org/tykayn/date-poll-api synced 2023-08-25 08:23:11 +02:00
date-poll-api/README.md

140 lines
4.3 KiB
Markdown
Raw Normal View History

2019-10-25 14:59:20 +02:00
#Funky Framadate API
2021-04-22 12:35:57 +02:00
REST backend in symfony 5 for Funky framadate frontend.
https://framagit.org/framasoft/framadate/funky-framadate-front
2021-04-22 12:35:57 +02:00
2019-11-28 17:12:38 +01:00
## TODO:
2020-06-11 15:55:05 +02:00
* coordinate properties and paths to be more restful.
2019-11-28 17:12:38 +01:00
return stack of votes when we want to get the configuration of one poll (see [doc/examples.md](doc/examples.md))
2019-11-06 11:12:16 +01:00
***
2019-12-30 12:22:04 +01:00
### Requirements
2021-04-22 12:35:57 +02:00
You MUST have [php version 8+ (see installation doc)](doc/php-8-install.md) and [Composer](https://getcomposer.org/download/), and a database like Mysql, or postgresql, or mongodb, or any database that Doctrine can handle.
2019-12-30 12:22:04 +01:00
Setup access to database by creating a .env.local file, and fill the database user and password data.
you can check that the database connection works with the command:
```bash
php bin/console doctrine:schema:validate
```
2019-12-30 19:12:47 +01:00
## Getting started
2021-04-22 12:35:57 +02:00
Follow this guide to setup.
2019-12-30 12:22:04 +01:00
# Development
2019-11-06 11:12:16 +01:00
install dependencies with Composer
2021-04-22 12:35:57 +02:00
configure env by creating local env file
```
cp .env .env.local
```
and edit the file variables to give access to database.
2021-04-22 12:35:57 +02:00
Launch dev server with the "symfony" cli tool:
```
symfony serve
```
2019-12-30 19:12:47 +01:00
there are examples of request to make it all work in the [doc/examples.md](doc/examples.md).
2019-12-30 12:22:04 +01:00
2020-04-25 16:44:17 +02:00
### Check prerequisites
```bash
composer check-platform-reqs
```
2019-12-30 12:22:04 +01:00
### install the vendors
```bash
composer install
```
#Funky Framadate API
Experimental REST backend in symfony 5 for Funky framadate frontend.
2020-11-27 16:00:29 +01:00
https://framagit.org/framasoft/framadate/funky-framadate-front
Follow this guide to setup.
* run `composer install`
configure env by creating local env file
`cp .env .env.local` and edit the file variables to give access to database.
## TODO:
* coordinate properties and paths to be more restful.
2021-04-22 12:35:57 +02:00
https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/
2020-11-27 16:00:29 +01:00
return stack of votes when we want to get the configuration of one poll (see [doc/examples.md](doc/examples.md))
***
### Requirements
You MUST have php version 8+ and [Composer](https://getcomposer.org/download/), and a database like Mysql, or postgresql, or mongodb, or any database that Doctrine can handle.
2020-11-27 16:00:29 +01:00
Setup access to database by creating a .env.local file, and fill the database user and password data.
you can check that the database connection works with the command:
```bash
php bin/console doctrine:schema:validate
```
2020-11-27 16:00:29 +01:00
## Getting started
# Development
install dependencies with Composer
there are examples of request to make it all work in the [doc/examples.md](doc/examples.md).
### Check prerequisites
```bash
composer check-platform-reqs
```
### install the vendors
```bash
composer install
```
### configure database access in .env.local file
This project can use any database system, we provide config for mysql.
If you need to setup mysql, a database and a user, read the [database_creation](doc/database_creation.md) doc. Before customizing your local environment config.
the .env.local file will not be versionned by git, so no risk to set the mysql credentials in here as long as file access are well done.
You can copy the model env file and customize it last line to access mysql.
```bash
cp doc/env-example .env.local
```
look for the line like this
> DATABASE_URL=mysql://framadate-admin:framadate-admin-password@127.0.0.1:5432/framadate-api
and change its values for `framadate-admin` , `framadate-admin-password`, `framadate-api`.
2019-11-28 14:16:56 +01:00
### initiate the database with fixtures
```bash
php bin/console doctrine:schema:drop --force
php bin/console doctrine:schema:create
2020-01-20 17:27:59 +01:00
php bin/console doctrine:fixtures:load --no-interaction --purge-with-truncate
```
### launch local server with
2019-11-06 11:12:16 +01:00
```bash
php bin/console server:run
```
2019-11-06 11:12:16 +01:00
# Production
set a virtual host on your server, configure CORS access to have the API to work.
configure database access in a .env.local file , replace variables
DATABASE_URL=mysql://database_user:db_user_password@127.0.0.1:3306/database_name
2019-12-30 19:12:47 +01:00
this file is not versionned and should stay like this.
2019-11-06 11:12:16 +01:00
2019-11-20 11:32:38 +01:00
## cronjob to delete expired polls
add this line in your crontab to run the clearance of expired polls everyday at 0h00.
```
2020-01-30 11:28:24 +01:00
0 0 * * * wget http://MYWEBSITE/api/v1/poll/clean-polls
2019-11-20 11:32:38 +01:00
```
you can open your crontabl in command line with :
```
2019-11-20 11:32:38 +01:00
crontab -e
```
2019-11-06 11:12:16 +01:00
# About
made by B. Lemoine, aka Tykayn, for the framadate funky front end project, a polling libre software.
## contacts
* contact@cipherbliss.com
* https://mastodon.cipherbliss.com/@tykayn
* https://twitter.com/tykayn
* https://cipherbliss.com