Skip to content

RichardMiruka/alx-files_manager

Repository files navigation

Files manager

Back-end JavaScript ES6 NoSQL MongoDB Redis NodeJS ExpressJS Kue

image

This project is a summary of this back-end trimester: authentication, NodeJS, MongoDB, Redis, pagination and background processing.

The objective is to build a simple platform to upload and view files:

  • User authentication via a token
  • List all files
  • Upload a new file
  • Change permission of a file
  • View a file
  • Generate thumbnails for images

You will be guided step by step for building it, but you have some freedoms of implementation, split in more files etc… (utils folder will be your friend)

Resources

Learning Objectives

  • how to create an API with Express
  • how to authenticate a user
  • how to store data in MongoDB
  • how to store temporary data in Redis
  • how to setup and use a background worker

📖 ALX Backend User Data.

📃 Topics Covered

  1. Personal Data.
  2. Basic authentication.
  3. Session authentication.

🔧 Project setup.

# Create project directory and readme.
mkdir ./alx-backend-user-data/
touch ./alx-backend-user-data/README.md

cd alx-backend-user-data


# Create repository.
git init
git add .
git commit -m 'first commit'
git remote add origin <REMOTE_URL>
git push

# Create gitignore file.
touch .gitignore

echo '*/__pycache__/
' > .gitignore

💻 Projects

The project is about personal data and user management. The project required implementing;

  • A log filter to obfuscate PII fields
  • Encrypting passwords
  • Checking the validity of an input password
  • Authenticating to a database using environment variables.

🔧 Project setup.

# Create project directory and readme.
mkdir ./0x00-personal_data/
touch ./0x00-personal_data/README.md
cd 0x00-personal_data

👉 Go to project

The project involves learning about the authentication process and implementing a Basic Authentication on a simple API written in Python Flask Framework requiring knowledge in;

  • REST API Authentication Mechanisms
  • HTTP header Authorization
  • Flask, and
  • Base64 concepts.

🔧 Project setup.

# Create project directory and readme.
mkdir ./0x01-Basic_authentication/
touch ./0x01-Basic_authentication/README.md
cd 0x01-Basic_authentication

👉 Go to project

The project is about implementing a session authentication mechanism without installing any other module. The learning objectives of the project include;

  • Understanding authentication, session authentication.
  • Cookies, sending cookies, and parsing cookies.

🔧 Project setup.

# Create project directory and readme.
mkdir ./0x02-Session_authentication/
touch ./0x02-Session_authentication/README.md
cd 0x02-Session_authentication

👉 Go to project

👨 Author and Credits.

This project was done by SE. Richard Miruka. Feel free to get intouch with me;

📱 WhatsApp +254700129706

📧 Email richardmiruka96@gmail.com

👍 A lot of thanks to ALX-Africa Software Engineering program for the project requirements.