Commit Graph

29 Commits

Author SHA1 Message Date
Yassine Doghri d4a36f811b chore: update CodeIgniter to 4.5.1 + other dependencies to latest 2024-04-26 09:26:22 +00:00
Yassine Doghri 6f8217e1a6 chore: update CI4 + shield + other php and js packages 2024-01-15 14:34:11 +00:00
Yassine Doghri 3d5fc14d5e build: upgrade CI4 + php and js dependencies to latest
closes #396
2023-11-17 17:29:05 +00:00
Yassine Doghri ae57601c83 fix: update Router to include latest CI changes with alternate-content logic 2023-09-09 10:23:34 +00:00
Yassine Doghri b4f1b916bf fix(routes): overwrite RouteCollection to include all routes + update js and php dependencies 2023-09-09 10:23:34 +00:00
Yassine Doghri 4ccb363a3d refactor(modules): add Registrars to declare filter aliases 2023-09-09 10:23:34 +00:00
Yassine Doghri c6e8000bab fix(auth): overwrite Shield's PermissionFilter 2023-09-09 10:23:34 +00:00
Yassine Doghri 9b955c9ce2 fix(s3): allow CORS for served static files 2023-07-19 15:04:17 +00:00
Yassine Doghri 2a50f6e4d2 style: update ecs config to align associative arrays arrows
update composer dependencies to latest
2023-06-12 15:12:49 +00:00
Yassine Doghri c1287cbe6c refactor(auth): replace myth/auth with codeigniter/shield + define new roles
closes #222
2022-10-16 13:35:26 +00:00
Yassine Doghri 3234500e2d feat: add premium podcasts to manage subscriptions for premium episodes
closes #193
2022-09-28 15:02:09 +00:00
Sebastian Janik e64001d006 feat(api): add rest api with podcasts read endpoints
relates to #210
2022-06-22 11:06:53 +00:00
Yassine Doghri 14d7d07822 fix: replace deletedField with published_at for episodes
- remove delete_at field + soft delete for media and pages
- update CodeIgniter4 to 4.2.0 + update all starter files
- explicitly use builder() when creating queries from model
2022-06-13 16:30:34 +00:00
Yassine Doghri cd2e1e1dc3 fix(security): add csrf filter + prevent xss attacks by escaping user input
- update CI4 to v4.1.9's stable production package
- update php and js dependencies to latest
2022-03-04 14:36:32 +00:00
Yassine Doghri 2f2480998f fix(activitypub): allow cors on get requests for routes exposing acitivitypub objects 2022-02-05 10:57:02 +00:00
Yassine Doghri 1fc3da139e chore: update CodeIgniter to latest dev version after 4.1.6 2022-01-04 15:40:27 +00:00
Yassine Doghri a95de8bab0 feat(components): add custom view renderer with ComponentRenderer adapted from bonfire2
- update Component class structure and remove component helper function and ComponentLoader
- update residual activitypub naming to fediverse
2021-12-29 11:54:50 +00:00
Yassine Doghri 5083cd2fda refactor(modules): extract castopod parts into a modules/ folder for a scalable HMVC structure
- create Admin, Analytics, Auth, Fediverse and Install modules in the root modules/ folder
- rename
ActivityPub to Fediverse
2021-12-29 11:54:22 +00:00
Yassine Doghri c72f4be6d8
refactor: add strict types declaration before each file and fix activitypub issues
fix some style issues
2021-06-11 09:35:19 +00:00
Yassine Doghri aa1612342e
style(ecs): add easy-coding-standard to enforce coding style rules for php
- update .devcontainer settings: remove auto-formatting
for php + set intelephense as default formatter
- remove prettier php plugin as it lacks php 8 support
- add captain hook action for checking style pre-commit
- fix style with ecs on all files except views
2021-06-11 09:34:48 +00:00
Yassine Doghri fb3593f828
refactor: remove all empty declarations + add missing type declarations
update composer dependencies
2021-05-18 17:16:36 +00:00
Yassine Doghri 6b74a9e98a
refactor: update code base to php 8 and set phpstan lvl to 6 2021-05-14 17:59:35 +00:00
Yassine Doghri 5c5c6da4be
refactor: add rector to enforce type declarations, code quality + style and remove dead code
- update CI process to include quality stage (tests + code review)
- add captainhook to install git pre-commit & pre-push hooks
- remove .devcontainer Dockerfile to use project's docker-compose services: all
services can now be started automatically using vscode
- update docs/setup-development.md
2021-05-12 10:48:30 +00:00
Yassine Doghri 2f525c0f6e feat(fediverse): implement activitypub protocols + update user interface
- add "ActivityPub" library to handle server to server federation and basic
  client to server protocols using activitypub:
  - add webfinger endpoint to look for actor
  - add actor definition with inbox / outbox / followers
  - remote follow an actor
  - create notes with possible preview cards
  - interract with favourites, reblogs and replies
  - block incoming actors and/or domains
  - broadcast/schedule activities to fediverse followers using a cron task
- For castopod, the podcast is the actor:
  - overwrite the activitypub library for castopod's specific needs
  - perform basic interactions administrating a podcast to interact with fediverse users:
    - create notes with episode attachment
    - favourite and share a note + reply
    - add specific castopod_namespaces for podcasts and episodes definitions
- overwrite CodeIgniter's Route service to include alternate-content option for
  activitystream requests
- update episode publication logic:
  - remove publication inputs in create / edit episode form
  - publish / schedule or unpublish an episode after creation
  - the podcaster publishes a note when publishing an episode
- Javascript / Typescript modules:
  - fix Dropdown.ts to keep dropdown menu in foreground
  - add Modal.ts for funding links modal
  - add Toggler.ts to toggle various css states in ui
- User Interface:
  - update tailwindcss to v2
  - use castopod's pine and rose colors
  - update public layout to a 3 column layout
  - add pages in public for podcast activity, episode list and notes
  - update episode page to include linked notes
  - remove previous and next episodes from episode pages
  - show different public views depending on whether user is authenticated or not
  - use Kumbh Sans and Montserrat fonts
- update CodeIgniter's config files
- with CodeIgniter's new requirements, update docker environments are now based on
  php v7.3 image
- move Image entity to Libraries
- update composer and npm packages to latest versions

closes #69 #65 #85, fixes #51 #91 #92 #88
2021-04-02 17:20:02 +00:00
Yassine Doghri ed6e953010 refactor: add php_codesniffer to define castopod's coding style based on psr-1
- add .editorconfig file
- format all files to comply with castopod's coding style
- switch parsedown dependency with commonmark library to better follow commonmark spec for markdown
- add prettier command to format all project files at once

closes #16
2020-10-15 14:41:22 +00:00
Yassine Doghri 58364bfed1 refactor(auth): change contributor's role logic to have it included in the users_podcasts table
- update myth-auth and codeigniter to latest develop changes
- improve permission check: remove all
dynamic permissions per podcast and overwrite myth-auth services and permission filter
- remove
unnecessary code because of myth-auth upgrade
- refactor some controller code for better clarity
-
add remaining seeders in docs

closes #19, #20
2020-10-15 14:41:14 +00:00
Yassine Doghri c63a077618 feat(users): add myth-auth to handle users crud + add admin gateway only accessible by login
- overwrite myth/auth config with castopod app needs
- create custom views for users authentication
- add admin area bootstrapped by admin controller
- shift podcast and episodes crud to admin area
- reorganize view layouts
- update docs for database migration
- add myth-auth to DEPENDENCIES.md

closes #11
2020-10-15 14:41:03 +00:00
Yassine Doghri f3b2c8b84f feat(episodes): add create form and view pages for episode
- add james-heinrich/getid3 library as a dependency to composer.json
- update DEPENDENCIES.md file
- fix episodes table migration script
- add js devDependencies: prettier, @prettier/plugin-php and lint-staged to automatically format staged files before commit
- reformat all files to the prettier format
- refactor code by separating some logic as helper functions
- overwrite existing files when uploading new files with the same name

fixes #1
2020-10-15 14:40:47 +00:00
Yassine Doghri cbb83a6f30 feat: add npm for js dependencies + move src/ files to root folder
- add node service in docker-compose.yml
- update .devcontainer Dockerfile by adding node, npm and vim
- init package.json for npm with tailwindcss, postcss, commitlint and commitizen as dev dependencies
- update default layout main header and footer
- replace CI's welcome_message.php with home.php listing all podcasts
- add AUTHORS.md file
- add docs folder in which to place castopod's technical documentation
2020-10-15 14:05:36 +00:00