A to-do task manager application based on AdonisJS backend with functions to add, update, remove tasks. User login functionality has been implemented. Login sessions based on JWT (JSON Web Token) authentication strategy. Tokens are encrypted using RSA based private-public key mechanism.
- Frontend static file server based on express
- Server API based on node.js and AdonisJS Framework
- Database based on MySQL and accessed through Lucid Models
- JWT based authentication based on AdonisJS Auth
- Server monitoring based on nodemon
- Code linting and styling based on eslint and prettier
Use the package manager yarn (preferred) or npm to install the required dependencies.
Clone the repository
git clone https://github.com/Vedant1202/to-do-task-manager-adonis.git
cd to-do-task-manager-adonis
To generate private-public keys:
-
On a Linux/Mac: You can choose to use ssh-keygen.
-
For all OS: You can use an online key pair generator like this.
-
After generating keys, name then as
public.key
andprivate.key
and copy the files into-do-api/keys/
. -
For easy installation sample keys have been provided in
to-do-api/keys/
. Rename them aspublic.key
andprivate.key
respectively.
To install backend dependencies
- Using yarn
cd to-do-api
yarn install
- Using npm
cd to-do-api
npm install
- Install and configure MySQL database from here (recommended although other databases could also be used)
- Copy the
to-do-api/.env.example
toto-do-api/.env
- Edit the database variables in
to-do-api/.env
- Create a database named
to-do
To install frontend dependencies
- Using yarn
cd frontend
yarn install
- Using npm
cd frontend
npm install
To start backend API
- Using yarn
cd to-do-api
yarn start
- Using npm
cd to-do-api
npm start
- API is live on
http://localhost:3333/
To start frontend static server
- Using yarn
cd frontend
yarn start
- Using npm
cd frontend
npm start
- Go to
http://localhost:3000/login
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update documentation as appropriate.