https://github.com/tberey/mencap-website
Repository for the Mencap Liverpool & Sefton official website (https://www.mencapliverpool.org.uk/)
https://github.com/tberey/mencap-website
charity full-stack fullstack javascript js node node-js nodejs ts typescript website website-development
Last synced: 6 months ago
JSON representation
Repository for the Mencap Liverpool & Sefton official website (https://www.mencapliverpool.org.uk/)
- Host: GitHub
- URL: https://github.com/tberey/mencap-website
- Owner: tberey
- Created: 2024-04-11T16:28:24.000Z (about 2 years ago)
- Default Branch: development
- Last Pushed: 2025-09-03T18:24:25.000Z (10 months ago)
- Last Synced: 2025-09-03T19:43:44.807Z (10 months ago)
- Topics: charity, full-stack, fullstack, javascript, js, node, node-js, nodejs, ts, typescript, website, website-development
- Language: EJS
- Homepage: https://www.mencapliverpool.org.uk/
- Size: 45 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
README
Contents
## About This Project
This is the codebase for the Mencap website.
### Tech Stack
* [Typescript](https://www.typescriptlang.org/) - Write in TypeScript (or JS), Compiles down to JavaScript.
* [NodeJS](https://nodejs.org/en/) - Node Runtime Environment.
* [ExpressJS](https://expressjs.com/) - Server & Router Infrastructure Framework.
* [EJS](https://ejs.co/) - Serves Client Views.
* [ESLint](https://eslint.org/) - Code Parsing, Styling & Error Checking.
* [Mocha-Chai](https://mochajs.org/) - Testing with Mocha Framework, using the Chai Library.
* [Nodemon](https://nodemon.io/) - Restart Application without Compiling, on a Change to Watched Files.
* [Rimraf](https://www.npmjs.com/package/rimraf) - Directory Cleaner Tool.
* [Dotenv](https://www.npmjs.com/package/dotenv) - Project Secrets Stored in a Local .env File.
* [SimpleTxtLogger](https://www.npmjs.com/package/simple-txt-logger) - Logging tool.
* [@types/*](https://www.npmjs.com/package/@types/node) - Various JS->TS Typesetting modules, to import types. Needed to use a JavaScript module with TypeScript when strict settings are enabled, or to make use of TS only features against a imported module.
*- See [Complete Instructions](#complete-setup-instructions) to create this template yourself, without any of the extra optional modules.*
## Startup
For help or guidance in downloading and running the application, see the following subsections.
#### Prerequisites
[You must have npm (node package manager) and Nodejs installed on your system!](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
1. Update npm:
```sh
npm install npm@latest -g
```
#### Installation
1. Clone/Download:
```sh
git clone https://github.com/tberey/mencap-website.git
```
2. Install:
```sh
npm install
```
3. Start:
```sh
npm run start
```
## Usage
| Endpoint | Action/Desc. | Full URI ``(hosted locally, for some port; e.g.: 3000, which is default for this template)`` |
| :-------------------------------- | :--------------------------------------------- | :-------------------------------------------------------------------------------------------------- |
| `
- `GET "/"`
`The client-side landing page. | `
- `"`http://localhost:3000/`"`
### Screenshots
Landing Page 1

Landing Page 2

Screenshot

Mobile Landing Page 1

Mobile Landing Page 2

Mobile Main Menu

## Complete Setup Instructions
The following steps are complete instruction to create this template, but without any of the extra modules, and begin a brand new project in Nodejs with TypeScript from a blank slate. The commands are shell commands, to be carried out in a terminal, console or other shell environment.
1. Create a new local directory and change current directory to new one:
```sh
mkdir && cd
```
2. Initialize a new package.json file:
```sh
npm init -y
```
3. Install TypeScript dependencies:
```sh
npm i --save-dev typescript ts-node
```
4. Initialize a new tsconfig.json file:
```sh
npx tsc --init
```
5. [Optional] Some basic parameters to use in the tsconfig.json file. [My settings for this file can be found here](https://github.com/tberey/mencap-website/blob/master/tsconfig.json) also, to copy & paste. Otherwise, adjust this further with own preferences, or leave it as is.
```sh
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"declaration": true,
"sourceMap": true,
"outDir": "build",
"rootDir": "./",
"strict": true,
"esModuleInterop": true
}
}
```
6. Create main.ts, the entry point into the application:
```sh
echo "console.info('Hello, World');" > main.ts
```
7. [Optional] Some basic information and scripts, for the package.json file:
```sh
{
"name": "",
"version": "1.0.0",
"description": "",
"main": "build/main.js",
"types": "build/main.d.ts"
"scripts": {
"setup": "npm update && npm install",
"build": "tsc",
"start": "node build/main.js",
"start:src": "ts-node main.ts"
}
}
```
8. [Optional] Install, compile and start application (it won't do much yet, but you're off to a running start now):
```sh
npm run setup
npm run build
npm run start
```
````^ Step 8.: These commands require the optional Step 7 to have been followed, to work as intended.`
`'npm run setup' installs and updates the project and it's dependencies, 'build' will compile the project into browser/app runnable JS, and 'start' will run the project, from the compiled files in build. 'start:src' runs the project from the source TS file, so compilation is not necessary.````
## Roadmap
Below is the refined and confirmed roadmap, that has been planned for completion. See [open issues][issues-url] and also the [project board][project-url], for any other proposed features or known issues, which may not be listed below.
| Feature/Task/Bugfix | Details | Version ``(if released)`` | Notes |
| :------------------------ | :-------------------------------- | :------------------------------- | :------------------------ |
| ``Bug#1`` | ``Bug details...`` | ``0.0.1`` | ``example#1`` |
| ``Feature#4`` | ``Feature details...`` | ``0.1.2`` | ``example#2`` |
## Changelog
| Version | Date | Changes |
| :------ | :--- | :------ |
| 1.0.0 | 2024-04-04 | `
- `Initial Commit.`
- `Add initial directory structure and files.`
- `1.0 full working version of the site.`
- `Create and format README.md `
| 1.0.1 | 2024-04-10 | `
- `Minor updates to site wording, sticky menu background colour, and a link.`
- `Add staff help page.`
- `Update Dependencies.`
- `Update README.md`
- `Mobile formatting and bug fixes.`
- `Add email obfuscation for public repo exposure`
- `Adds new slim social media widgets bar to header`
- `Update README.md`
- `Adjust page formatting and layout bug fixes.`
- `Adds hide button to the sticky menu.`
- `General minor improvements or tidy up, based on feedback.`
- `Update README.md`
- `Adds spam protections to contact us form.`
- `Adds bad word protections to contact us form.`
- `Adds reCaptcha to contact us form.`
- `General dependency and code updates.`
- `Update README.md`
- `Updates mobile menu to a new look and design.`
- `Generallayout and front end tidy and code updates.`
- `Minor API updates.`
- `Dependency and Security updates.`
- `Update README.md`
- `Further updates and refinement to mobile screen formatting, layout and design.`
- `Minor full size screen tidying and formatting.`
- `Home/front page changes so that ig and fb posts are also rendered in a wall timeline format.`
- `Server changes to accomodate home/front page post changes.`
- `Minor API updates and tidy.`
- `Update README.md`
- `Design, view and quality improvements.`
- `Address numerous security concerns and exploits.`
- `Adds further rate limiting and enhances existing session limits.`
- `Enhances session and cookies config.`
- `Minor general server updates and tidy.`
- `Update README.md`
- `Design, view and quality improvements.`
- `Refine posts fetching on the server side, and update front end handling of this.`
- `Update README.md`
- `Minor view update.`
- `Add our current privacy policy, that has always been followed by us (mencap liverpool and sefton), even if not visible.`
- `Update README.md`
- `Minor view and style updates.`
- `Add screenshots.`
- `Update README.md`
- `Major Gallery page update, being supplemented by social post images.`
- `Server side minor updates.`
- `Minor view updates.`
- `Update README.md`
- `Update server emailing handling.`
- `Add email cron scripts.`
- `Minor API updates.`
- `Update README.md`
- `Add better website down handling static page.`
- `Improve website design.`
- `Add back to the top button.`
- `Update README.md`
- `Testing new home page / landing page.`
- `Minor improvements to website design and visual.`
- `Add custom 404 handling for server.`
- `Update README.md`
- `Implement a refined and upgraded new home page / landing page.`
- `Minor improvements to website design and visual.`
- `Minor API adjustments.`
- `Old homepage remade into new timeline page.`
- `Update README.md`
- `Wording content updates, as requested.`
- `Add campaign top banner.`
- `Add new content to involve.ejs get involved page.`
- `Add new content to donate.ejs donate sub-page.`
- `Update README.md`
- ` |
| 1.0.2 | 2024-04-11 | `
- ` |
| 1.0.3 | 2024-05-01 | `
- ` |
| 1.0.4 | 2024-04-04 | `
| 1.0.5 | 2024-10-14 | `
| 1.1.0 | 2024-10-17 | `
| 1.1.1 | 2024-10-18 | `
| 1.1.2 | 2024-10-22 | `
| 1.1.3 | 2024-10-23 | `
| 1.1.4 | 2024-10-25 | `
| 1.2.0 | 2024-10-26 | `
| 1.2.1 | 2024-10-27 | `
| 1.2.2 | 2024-10-30 | `
| 1.2.3 | 2024-10-31 | `
| 1.3.0 | 2024-11-02 | `
| 1.3.0 | 2024-12-16 | `
| 1.3.1 | 2025-01-30 | `
## Contributing
Contributions are welcomed and, of course, **greatly appreciated**.
1. Fork the Project.
2. Create your Feature Branch (`git checkout -b feature/Feature`)
3. Commit your Changes (`git commit -m 'Add some Feature'`)
4. Push to the Branch (`git push origin feature/Feature`)
5. Open a Pull Request.
### Contact
``Tom Berey ``;`
`tom.berey@mencapliverpool.org.uk