This is a re-write of my To Do List application (located at To Do List - Github)
The backend API is built with Express.js and Mongoose, with data storage in MongoDB.
The frontend is built in React, and is an almost identical replica of the original frontend.
This project is currently a Work In Progress (currently testing). However, the backend API and frontend is completely working. The repository can be cloned, and the dev branch compiles.
For development and compiling, you will need nodejs and node package manager (npm) installed on your system.
Ensure MongoDB is installed on your system, and is accessible from other applications.
Configuration for this will come in the future.
-
Just go on official Node.js website and download the installer. Also, be sure to have
gitavailable in your PATH,npmmight need it (You can find git here). -
You can install nodejs and npm easily with apt install, just run the following commands.
$ sudo apt install nodejs $ sudo apt install npmThis process will be identical for other Linux distributions with package managers, substitute
aptwith your OS' package manager. -
You can find more information about the installation on the official Node.js website and the official NPM website.
This project depends on:
- Express.js
- React
- Mongoose
- Cors
- Jest
All required dependencies can be installed by running npm install.
Download the latest release from Github packages, if one exists.
To compile yourself:
- Clone repository
- Run
npm installto install all required dependencies - Run
npm run buildto get a working static copy of the frontend.npm startdoes not need to be used, as Express.js handles serving the frontend from thepublicdirectory.
npm startcan be used to start the React live server, for development. - The full server can be started by running
node server.js, this connects to MongoDB, and simultaneously serves the backend and frontend routes.
Currently, the listening port for the Express.js server can be changed in server.js. A better solution will be added shortly. These settings are most likely to be placed in settings.ini, or an alternative configuration file.
Full unit and integration tests will also be created for the backend and frontend, as well as UI tests in Selenium.
This project contains a WSGI server-compatible executable in bin/, for use with production-grade web servers.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Ali Hamza Mohammed - All of it - alihamzamohammed