# Features — calendar-module

Evidence date: 2026-10-19. Revision: `master` `88c9d8d` (2020-10-07).

There is no feature list in the repository. Status below is from `src/Components/Calendar.js`, `src/Components/Modal.js`, the `php/` scripts, `php/fullcalender.sql`, `package.json`, and git history. The app was not executed.

## Current features

| Feature | Status | Where |
|---|---|---|
| Single-page calendar | Current | `src/App.js` renders only `Calendar` |
| Month view as the initial view | Current | `Calendar.js` `initialView="dayGridMonth"` |
| Previous, next, today | Current | `headerToolbar.left` |
| Month, week, and day buttons | Current | `dayGridMonth`, `timeGridWeek`, `timeGridDay` |
| Select a range | Current. Stored in state `eventClick`. Does not open the dialog | `select={handleDateSelect}` |
| Click a date to open the title dialog | Current. Uses `dateClick`, not the select handler | `Onchange`, `{!!selectedDate && <Modal/>}` |
| Title field and Add button | Current | `Modal.js` |
| Refuse an empty title on the client | Current. Truthy check only | `Modal.js` `if (title)` |
| Add the event on the FullCalendar instance | Current | `calendarApi.addEvent` |
| POST the new event to PHP | Current. Hard-coded `http://localhost/php-react/addEvent.php` | `Calendar.js` `addEvent` |
| Insert `eventTitle`, `dtDateStart`, `dtDateEnd` | Current in `addEvent.php`, when the database include loads | `Insertdata` in `functions.php` |
| GET all events from PHP | Current as an Axios call. The return value is not passed to FullCalendar's success callback | `fetchEvent` |
| JSON list of `title`, `start`, `end` | Current in PHP | `php/fetchEvent.php` |
| CORS for a browser on another port | Current. `Access-Control-Allow-Origin: *`. Methods listed: `POST, OPTIONS` | `php/header.php` |
| `event` table and a 13-row sample dump | Current in git. Dump time 2020-10-07 16:41 | `php/fullcalender.sql` |
| Create React App dev, test, build, eject scripts | Current as the stock README and `package.json` | `yarn start` on port 3000 |
| Service worker scaffold, left off | Current. `unregister()` | `src/index.js`, `src/serviceWorker.js` |

## Present in the tree, not a product feature

| Item | Evidence |
|---|---|
| `db_connection.php` | Opens `localhost` / database `login` as `root` with an empty password. No PHP file includes this name. The scripts include `dbconnect.php`, which is not in git |
| User helpers in `functions.php` | `insertUser`, `updateDate`, `updatetUser`, `selectUser`, `SaveLog`, `redirectToLoginPage`. They target `user` and `loguser`. Nothing in `addEvent.php` or `fetchEvent.php` calls them. The SQL dump does not create those tables |
| `UpdateTable` | Comment "not implemented yet". Builds SQL, does not execute, is not called |
| `SelectData` | Comment "works but not implement yet". Not called |
| `react-bootstrap` 1.3.0 | In `package.json` and both lockfiles. No import under `src/` |
| `cors` 2.8.5 | Node package. No Node server file. PHP sets CORS itself |
| `@fullcalendar/list` 5.3.1 | In `package.json`. Not imported. Toolbar has no list button |
| `useEffect` import | `Calendar.js` imports it and does not call it |
| Commented delete confirm | `handleEventClick` in `Calendar.js`. Not passed as `eventClick` |
| Stock CRA test | `App.test.js` expects `/learn react/i`. `App.js` has no such text |
| Stock CRA styles and logo | `App.css` still has `.App-logo` spin. `App.js` does not use the logo. `src/logo.svg` is the React logo |
| `public/manifest.json` and icons | Default "Create React App Sample". Service worker is unregistered, so install is not turned on |
| `.prettierrc.json` | Empty object `{}` |
| `.gitignore` | Atlassian example template from `5fdec4c`. Ignores `node_modules/` and `dist/`. Does not mention CRA's `build/` |

## Not built

| Feature | Evidence it is absent |
|---|---|
| Edit a stored event | No PHP update script. `editable={true}` changes the client event only. No `eventDrop` / `eventChange` / `eventResize` handler |
| Delete a stored event | Handler commented out. No delete script. Sample dump is missing ids 1, 3, and 5, which only shows those ids were not in the export |
| Description | Column `eventDescription` exists. Modal has no field. Insert writes `""` |
| A separate time-of-day value | Column `time` exists. Insert writes `""`. Dump values are `00:00:00`. The week and day grids can display a range because `start` / `end` are strings, not because `time` is filled |
| Login and per-user events | No session start. `SELECT * FROM event` |
| Close the dialog after a successful add | `OnSubmit` does not call `props.close` |
| Server-side copy of the client empty-title check | `addEvent.php` inserts whatever string arrives. The dump contains empty titles |
| Map `php/` to `http://localhost/php-react/` | No Apache, nginx, or Docker config |
| Include the connection file that is actually named | `require 'dbconnect.php'` versus tracked `db_connection.php` |
| Product documentation | `README.md` is the Create React App text. Page title is "React App" |
| Pipeline, tests of the calendar, monitoring | No `bitbucket-pipelines.yml`, no test of `Calendar` or PHP |

## Planned

No issue, branch, or README section describes work after 2020-10-07.

Comments that read like a backlog belong to the unused user helpers: "email function still need to be added", "this must be changed !!!", "not implemented yet". They are not a calendar plan.

The commented delete handler is inactive code, not a scheduled feature.

## Removed

Git history has two commits. `5fdec4c` is `.gitignore` only. `88c9d8d` adds everything else. No feature was added and later removed.

## Recently changed

The only feature change in git is `88c9d8d` on 2020-10-07: the calendar UI, the PHP endpoints, the SQL dump, and the lockfiles, in one commit by Uriel Balela.

## Deprecated

Nothing is marked deprecated. The user helpers look copied from another project and are unreachable from the calendar. That is **Inferred** from the function names and the missing `user` table, not from a deprecation note.
