An open API service indexing awesome lists of open source software.

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/)

Awesome Lists containing this project

README

          





Logo




Mencap Liverpool & Sefton Website

Empowering learning disabilities




Documentation »


View Demo
·
Report Bug
·
Request Feature

Contents



  1. About



  2. Startup



  3. Usage


  4. Complete Setup Instructions

  5. Changelog

  6. Contributing

  7. Contact




## 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 "/"`
` | Homepage:`
`The client-side landing page. | `
  • `"`http://localhost:3000/`"`
` |


### Screenshots

Landing Page 1

![Screenshot#1](https://github.com/tberey/mencap-website/blob/development/screenshots/landing-page-1.png?raw=true)



Landing Page 2

![Screenshot#1](https://github.com/tberey/mencap-website/blob/development/screenshots/landing-page-2.png?raw=true)



Screenshot

![Screenshot#1](https://github.com/tberey/mencap-website/blob/development/screenshots/screenshot.png?raw=true)



Mobile Landing Page 1

![Screenshot#1](https://github.com/tberey/mencap-website/blob/development/screenshots/mobile-landing-page-1.png?raw=true)



Mobile Landing Page 2

![Screenshot#1](https://github.com/tberey/mencap-website/blob/development/screenshots/mobile-landing-page-2.png?raw=true)



Mobile Main Menu

![Screenshot#1](https://github.com/tberey/mencap-website/blob/development/screenshots/mobile-main-menu.png?raw=true)




## 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`

    • ` |
      | 1.0.2 | 2024-04-11 | `

      • `Mobile formatting and bug fixes.`

      • `Add email obfuscation for public repo exposure`

      • `Adds new slim social media widgets bar to header`

      • `Update README.md`

        • ` |
          | 1.0.3 | 2024-05-01 | `

          • `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`

            • ` |
              | 1.0.4 | 2024-04-04 | `

              • `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`

              ` |
              | 1.0.5 | 2024-10-14 | `

              • `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`

              ` |
              | 1.1.0 | 2024-10-17 | `

              • `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`

              ` |
              | 1.1.1 | 2024-10-18 | `

              • `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`

              ` |
              | 1.1.2 | 2024-10-22 | `

              • `Design, view and quality improvements.`

              • `Refine posts fetching on the server side, and update front end handling of this.`

              • `Update README.md`

              ` |
              | 1.1.3 | 2024-10-23 | `

              • `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`

              ` |
              | 1.1.4 | 2024-10-25 | `

              • `Minor view and style updates.`

              • `Add screenshots.`

              • `Update README.md`

              ` |
              | 1.2.0 | 2024-10-26 | `

              • `Major Gallery page update, being supplemented by social post images.`

              • `Server side minor updates.`

              • `Minor view updates.`

              • `Update README.md`

              ` |
              | 1.2.1 | 2024-10-27 | `

              • `Update server emailing handling.`

              • `Add email cron scripts.`

              • `Minor API updates.`

              • `Update README.md`

              ` |
              | 1.2.2 | 2024-10-30 | `

              • `Add better website down handling static page.`

              • `Improve website design.`

              • `Add back to the top button.`

              • `Update README.md`

              ` |
              | 1.2.3 | 2024-10-31 | `

              • `Testing new home page / landing page.`

              • `Minor improvements to website design and visual.`

              • `Add custom 404 handling for server.`

              • `Update README.md`

              ` |
              | 1.3.0 | 2024-11-02 | `

              • `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`

              ` |
              | 1.3.0 | 2024-12-16 | `
              • `Wording content updates, as requested.`
              ` |
              | 1.3.1 | 2025-01-30 | `

              • `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`

              ` |





              ## 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