Welcome to my ALX Final Portfolio! This portfolio showcases the development of a Note App, which is a web-based application developed as part of the ALX-Africa Software Engineering programme. Below, you'll find detailed information about the project, its components, and how to set it up.
- Overview
- Technologies-Used
- Components
- Installation
- Usage
- Structure
- Contributing
- Acknowledgements
- License
The Note App is a web-based application designed to allow users to create, view, and delete notes. It's built using the Flask web framework and incorporates features such as user authentication, database storage, and dynamic rendering of content. The project demonstrates proficiency in backend development and serves as a showcase of Full Stack Software Engineering skills.
The Note App project utilizes the following technologies and tools:
- Flask: A lightweight web application framework for Python.
- Object-Oriented Programming (OOP): Utilized for efficient code organization and maintainability.
- SQLite: A relational database management system used for storing user data and notes.
- Flask-Login: A Flask extension for managing user sessions and authentication.
- Bootstrap: A front-end framework for designing responsive and mobile-first websites.
- Jinja: The most popular template engine for Python projects.
- JavaScript: Used for client-side scripting and dynamic interactions.
- jQuery: A fast, small, and feature-rich JavaScript library for simplifying client-side scripting.
- HTML: The standard markup language for creating web pages and applications.
- CSS: Cascading Style Sheets for styling HTML elements and enhancing the visual presentation.
- Git: A version control system for tracking changes in the project codebase.
- GitHub: A platform for hosting and collaborating on Git repositories.
These technologies collectively enable the development of a robust and user-friendly web application for managing notes effectively.
The project consists of the following components:
Src/
- The main directory containing the application source code.instance/
- Directory containing the SQLite database file (database.db
).website/
- Directory containing the Flask application code.static/
- Directory containing static files such as CSS and JavaScript.index.js
- JavaScript file containing client-side functionality.
templates/
- Directory containing HTML templates.base.html
,home.html
,login.html
,sign_up.html
- HTML templates for different pages.
__init__.py
,auth.py
,models.py
,views.py
- Python modules containing application logic.
main.py
- Main Python script to run the Flask application.requirements.txt
- File containing dependencies required to run the application.
To install and run the Note App on your local machine, follow these steps:
-
Clone the repository:
$ git clone https://github.com/your-username/note-app.git
-
Navigate to the project directory:
$ cd note-app
-
Create a virtual environment (optional but recommended):
$ python -m venv venv
-
Activate the virtual environment:
- On Windows:
$ venv\Scripts\activate
- On macOS and Linux:
$ source venv/bin/activate
-
Install dependencies:
$ pip install -r requirements.txt
-
Run the Flask application:
$ python main.py
-
Access the application in your web browser at
http://localhost:5000
.
Once the application is running, you can access it in your web browser. Here are some key features:
- Home Page: View existing notes and add new ones.
- Login Page: Authenticate with your email and password.
- Sign-Up Page: Create a new account.
- Logout: Log out of the application.
Here is the Structure
of the note-appποΈ:
elysee_niyibizi@HACKER:~/note-app$ ls
AUTHORS LICENSE README.md Src requirements.txt venv
elysee_niyibizi@HACKER:~/note-app$ tree -I venv
.
βββ AUTHORS
βββ LICENSE
βββ README.md
βββ Src
β βββ instance
β β βββ database.db
β βββ main.py
β βββ website
β βββ __init__.py
β βββ __pycache__
β β βββ __init__.cpython-312.pyc
β β βββ __init__.cpython-38.pyc
β β βββ auth.cpython-312.pyc
β β βββ auth.cpython-38.pyc
β β βββ models.cpython-312.pyc
β β βββ models.cpython-38.pyc
β β βββ views.cpython-312.pyc
β β βββ views.cpython-38.pyc
β βββ auth.py
β βββ models.py
β βββ static
β β βββ index.js
β βββ templates
β β βββ base.html
β β βββ home.html
β β βββ login.html
β β βββ sign_up.html
β βββ views.py
βββ requirements.txt
6 directories, 23 files
elysee_niyibizi@HACKER:~/note-app$
Contributions to the Note App project are welcome! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/new-feature
). - Make your changes.
- Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature/new-feature
). - Create a new Pull Request.
I would like to express my gratitude to the following individuals and organizations for their support and guidance throughout my journey in the ALX-Africa Software Engineering programme:
- My Mentors for their valuable feedback and assistance.
- My peers in
Cohort 13
for their collaboration and camaraderie. - ALX Africa: Thank you for providing a transformative software engineering program that has equipped me with the skills and knowledge needed to pursue a career in technology. Your commitment to fostering talent and promoting lifelong learning is truly commendable.
- Mastercard Foundation: I am immensely grateful for the opportunity to participate in the ALX Africa program, made possible through your generous sponsorship. Your commitment to empowering African youth with the technical skills and resources necessary to thrive in the global workforce is truly inspiring.
- Fred Swaniker: I extend my sincere appreciation to Fred Swaniker for his visionary leadership and dedication to creating the next generation of African leaders and innovators. His unwavering belief in the potential of African talent has been instrumental in driving positive change and progress across the continent.
A good note-taking
system is essential for capturing information @kalibetreβοΈ. For more info visit π LINK ........π
- NIYIBIZI ElysΓ©eπ¨πΏβπ» | Github | Linkedin | Twitter.
This project is licensed under the MIT License - see the LICENSE file for details.
Thank you for visiting my ALX Final Portfolio! If you have any questions or feedback, feel free to reach out. Regardsπ
If you like how I present and document my work do me a favor of giving a Star β¨ to my Repos |&&| a Follow π₯