/dome

'dome' is a task manager web application that allows you to perform CRUD (create, read, update and delete) operations, now with even better features for an improved experience, added a database to keep your tasks and signup info safe and sound. Your tasks are now more secure, and signing up is safer too!

Primary LanguageEJS

logo

Dome has undergone significant improvements to become a user-friendly task manager web application with added security measures. Now equipped with a database, users can easily create, modify, view, and remove tasks. The application ensures secure storage of user data, employing bcrypt.js for password hashing and implementing JSON Web Token (JWT) for enhanced authentication during signup and login.

Teach Stack

  • Node.js : A JavaScript runtime environment used for server-side development.
  • Express.js : A backend web application framework for building RESTful APIs with Node.js.
  • EJS : A simple templating language that lets you generate HTML markup with plain JavaScript.
  • Bootstrap and css : A css framework used for styling the user interface.
  • MongoDB : A NoSQL database used for storing tasks and users data.

Getting Started

To run the application locally, follow these steps:

1. Clone the repository:

git clone https://github.com/<your-username>/dome.git

2. Navigate to the project directory:

cd dome

3. Install dependencies:

npm install

4. Create an environment file:

Create a file named .env in the root of your project and add the following configuration:

PORT=3000
MONGODB_URL=mongodb://localhost:27017/<your-database-name>
JWT_SECRET=<your-secret-key>

Replace <your-database-name> with the desired name for your MongoDB database and set a secure value for <your-secret-key> as the JWT secret.

5. Run the application:

npm start

For development (using nodemon for automatic restart on file changes):

npm run dev

The application will be accessible at http://localhost:3000 by default. Adjust the port number if needed.

Screenshots

Screenshot

Screenshot

Screenshot

Screenshot