Loading repository data…
Loading repository data…
devGeorgeOwi / repository
A simple task management app with create, read, update, and delete functionality, built as an assignment for AltSchool Africa.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
This Todo Application is a full-stack backend-driven task management system built with Node.js, Express, MongoDB, and EJS templating.
The application demonstrates core backend engineering concepts including:
Users can register, login, create tasks, edit them, mark them as completed, soft-delete them, and permanently remove deleted tasks. The system enforces proper access control, ensuring users can only manage their own tasks.
The project was developed to meet AltSchool Backend Engineering requirements and follows clean, modular coding standards.
Live URL: https://altschool-todo-app-ha1p.onrender.com (Update with your deployed link)
altschool-todo-app/
├── models/
├── views/
│ ├── auth/
│ ├── partials/
│ ├── dashboard.ejs
│ └── edit-task.ejs
├── routes/
├── middleware/
├── public/
│ ├── css/style.css
│ └── js/app.js
├── scripts/
├── .env.example
├── .gitignore
├── index.js
├── package.json
└── README.md
The application follows MVC principles for maintainability and scalability.
Session secret is stored securely in environment variables.
| Method | Route | Description |
|---|---|---|
| GET | /login | Login page |
| POST | /login | Authenticate user |
| GET | /register | Registration page |
| POST | /register | Create new user |
| GET | /logout | Logout user |
| Method | Route | Description |
|---|---|---|
| GET | /dashboard | User dashboard |
| POST | /tasks | Create new task |
| POST | /tasks/:id/status | Update task status |
| GET | /tasks/:id/edit | Edit task form |
| POST | /tasks/:id/edit | Update task |
| POST | /tasks/:id/delete | Permanently delete task |
Testing was conducted using:
Test Command:
npm test
| Variable | Required | Description |
|---|---|---|
| PORT | Yes | Server port |
| MONGODB_URI | Yes | MongoDB connection string |
| SESSION_SECRET | Yes | Session encryption key |
| NODE_ENV | No | Environment type |
Ensure MongoDB Atlas IP whitelist includes 0.0.0.0/0 for Render access.
Although this is a server-rendered app, routes can be tested using Postman for:
✔ Session-based authentication
✔ Password hashing
✔ CRUD functionality
✔ Soft delete implementation
✔ Task filtering by status
✔ Priority levels
✔ Protected routes
✔ Environment configuration
✔ Deployment-ready setup
✔ MVC structure
This project was created for educational purposes as part of the AltSchool Africa Backend Engineering program.
George Owoicho
AltSchool Africa Backend Engineering Student
GitHub: https://github.com/devGeorgeOwi/altschool-todo-app