Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group 12 Final Project Submission #48

Open
wants to merge 74 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
e527aa8
initial commit
justgaret23 Sep 26, 2021
a8770e2
gitignore
justgaret23 Sep 26, 2021
9c53204
proposal
justgaret23 Sep 26, 2021
6e0a541
added template code
tcox-coding Sep 30, 2021
832437f
New Controller Scripts
gdgarsson Oct 4, 2021
804828a
React up and running
tcox-coding Oct 4, 2021
54a5ce4
Merge branch 'main' of https://github.com/justgaret23/final_project i…
tcox-coding Oct 7, 2021
6300f20
add form
justgaret23 Oct 7, 2021
c563f47
Merge branch 'main' of https://github.com/justgaret23/final_project i…
tcox-coding Oct 7, 2021
326af6e
chaos?
justgaret23 Oct 7, 2021
b764b2c
Merge branch 'main' of https://github.com/justgaret23/final_project i…
justgaret23 Oct 7, 2021
5e46099
bootstrap
justgaret23 Oct 7, 2021
2c1e20c
changed to jsx
tcox-coding Oct 7, 2021
cb63ecb
frontend stuff
justgaret23 Oct 7, 2021
5758002
Update Database.jsx
gdgarsson Oct 7, 2021
034d007
mongodb integration done with schemas; all endpoints fully working
tcox-coding Oct 7, 2021
c6f5fe4
github oauth done; changed files to make it work
tcox-coding Oct 8, 2021
66d2824
changed the getUser to send only id
tcox-coding Oct 8, 2021
fa2c152
changed gitignore to have the build directory
tcox-coding Oct 8, 2021
42b3fba
Delete build directory
Oct 8, 2021
d383995
added endpoints for getting db data
tcox-coding Oct 8, 2021
e67d069
Merge branch 'main' of https://github.com/justgaret23/final_project
tcox-coding Oct 8, 2021
8898ffc
changed index to be in line with other jsx files
tcox-coding Oct 8, 2021
201a01f
changed index.jsx filename to be more correct
tcox-coding Oct 8, 2021
3a32ae7
changed database file; rename and export functions
tcox-coding Oct 8, 2021
d3f920b
made database file make more sense
tcox-coding Oct 8, 2021
415ccd2
added a file for global variables
tcox-coding Oct 8, 2021
965d09f
changed database utils to work as intended
tcox-coding Oct 8, 2021
33833de
changed databaseUtils to work as intended p2
tcox-coding Oct 8, 2021
b006f2d
added loading to webpage for global vars
tcox-coding Oct 9, 2021
ce559bf
added calendar sidebar items
tcox-coding Oct 9, 2021
684c7f8
calendar sidebar working?
tcox-coding Oct 9, 2021
d62e03d
calendar sidebar items working?
tcox-coding Oct 9, 2021
93dae6a
Create Task.jsx
gdgarsson Oct 9, 2021
2ab3a7b
Merge branch 'main' of https://github.com/justgaret23/final_project
gdgarsson Oct 9, 2021
0a451ab
Update Sidebar to include Tasks
gdgarsson Oct 9, 2021
ec0821c
working on selecting calendar; not currently work
tcox-coding Oct 9, 2021
925351d
Merge branch 'main'
tcox-coding Oct 9, 2021
aa10272
Task working as expected
tcox-coding Oct 9, 2021
11dd658
made sidebar thingy with task vr cool
tcox-coding Oct 9, 2021
a5b15bd
wtf another handle change
tcox-coding Oct 9, 2021
e48f5cb
Update Sidebar.jsx
gdgarsson Oct 9, 2021
d48c1eb
trying to select calid
tcox-coding Oct 9, 2021
3692677
Merge branch 'main' of https://github.com/justgaret23/final_project
tcox-coding Oct 9, 2021
d7798c4
fixed some database utils
tcox-coding Oct 9, 2021
1465856
asdf
gdgarsson Oct 9, 2021
6595e21
changed some stuff
tcox-coding Oct 9, 2021
c60ac86
Merge branch 'main' of https://github.com/justgaret23/final_project
tcox-coding Oct 9, 2021
cc8511c
Update Task.jsx
gdgarsson Oct 9, 2021
18c7b7b
transferring work to desktop
justgaret23 Oct 9, 2021
8dc0e54
database updates fixed and cal children done
tcox-coding Oct 9, 2021
e0e8390
Merge branch 'main' of https://github.com/justgaret23/final_project
tcox-coding Oct 9, 2021
c6301c0
updated deleting functions to only delete one thin
tcox-coding Oct 9, 2021
3712370
delete calendar ui done (with bug?)
tcox-coding Oct 10, 2021
0e7ec37
asdf
gdgarsson Oct 10, 2021
915c685
zasdf
gdgarsson Oct 10, 2021
5a1bf06
wokring on modify calendar
tcox-coding Oct 10, 2021
b79bc43
Merge branch 'main' of https://github.com/justgaret23/final_project
tcox-coding Oct 10, 2021
dbb5541
garrett's changes
justgaret23 Oct 10, 2021
1c906ea
hm today i will cause problems
justgaret23 Oct 10, 2021
409c947
die build you dont belong in this world
justgaret23 Oct 10, 2021
f1d4a26
Merge pull request #1 from justgaret23/garrett
justgaret23 Oct 10, 2021
25ce33b
changed some stuff; working on tasks
tcox-coding Oct 10, 2021
59047fd
Merge branch 'main' of https://github.com/justgaret23/final_project
tcox-coding Oct 10, 2021
b1b2cb6
everything works, goodnight
tcox-coding Oct 10, 2021
8f4be9e
minor package.json mistake
justgaret23 Oct 10, 2021
9fb5edf
done?
tcox-coding Oct 10, 2021
a7ea7e9
Merge branch 'main' of https://github.com/justgaret23/final_project
tcox-coding Oct 10, 2021
a400776
change start command
justgaret23 Oct 10, 2021
105d6e0
README
justgaret23 Oct 11, 2021
bcf68af
Final ReadMe
justgaret23 Oct 11, 2021
145607d
wording
justgaret23 Oct 11, 2021
5d8d506
link
justgaret23 Oct 11, 2021
ba0efbe
format
justgaret23 Oct 11, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 119 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
build/

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test
.env.production

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
55 changes: 13 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,22 @@
# Final Project
*Due before the start of class, October 11th (final day of the term)*
CS 4241 Group 12 Final Project: FoldCal

For your final project, you'll implement a web application that exhibits understanding of the course materials.
This project should provide an opportunity to both be creative and to pursue individual research and learning goals.
Authors: Taylor Cox, Geoffrey Garsson, Garrett Sheehan

## General description
Your project should consist of a complete Web application, exhibiting facets of the three main sections of the course material:
Project Link: https://final-project-group-12.glitch.me/

- Static Web page content and design. You should have a project that is accessible, easily navigable, and features significant content.
- Dynamic behavior implemented with JavaScript (TypeScript is also allowed if your group wants to explore it).
- Server-side programming *using Node.js*. Typically this will take the form of some sort of persistent data (database), authentication, and possibly server-side computation.
- A video (less than five minutes) where each group member explains some aspect of the project. An easy way to produce this video is for you all the groups members to join a Zoom call that is recorded; each member can share their screen when they discuss the project or one member can "drive" the interface while other members narrate (this second option will probably work better.) The video should be posted on YouTube or some other accessible video hosting service. Make sure your video is less than five minutes, but long enough to successfully explain your project and show it in action. There is no minimum video length.
Our group created a calendar application displaying both events and tasks the user can use to keep track of what they need to do. A key feature of our calendars is being able to nest them, allowing for easier compartmentalization of events and the ability to avoid clutter that can plague particularly busy calendars. For example, if you have a classes calendar, you can put in calendars for each of your classes. If you make an event for one of the individual classes, it will show up in that individual class calendar alongside the general classes calendar. Likewise, events created in a parent calendar will not be shown to its children. All calendars and tasks are displayed in the left sidebar of the application.

## Project ideation
Excellent projects typically serve someone/some group; for this assignment you need to define your users and stakeholders. I encourage you to identify projects that will have impact, either artistically, politically, or in terms of productivity.
Our project uses Github Authentication, requiring one to utilize their github account to use the calendar.

## Logistics
### Team size
Students are will work in teams of 3-5 students for the project; teams of two can be approved with the permission of the instructor. Working in teams should help enable you to build a good project in a limited amount of time. Use the `#project-logistics` channel in Discord to pitch ideas for final projects and/or find fellow team members as needed.
We used numerous technologies to enhance our calendar application. First up is React, which was used to create an object-oriented frontend for our project, which included our calendar, the weeks and days within our calendar, and a sidebar that allows the user to view their calendars and tasks. Our React hierarchy is rather complex, with days being deeply nested inside of calendars. We also used Mongoose alongside MongoDB, allowing us to organize our database functions more efficiently than standard expressJS mongoDB functions. Our login is handled by Github Authentification, allowing each user's calendar information to be tied to their github account.

Teams must be in place by end of day on Saturday, September 25th. If you have not identified a team at this point, you will be assigned a team. You will be given some class time on Monday to work on your proposal, but please plan on reserving additional time as needed.
The main challenge of the project was our scope. FoldCal ended up being wildly out of scope and complex considering the skillset of most of our team, leading to Taylor needing to help Garrett and Geoff a lot with many aspects of implementation. This immense complexity combined with all of us being drowned in work for other classes during the first week and a half of the project's development lead to a rather botched development cycle. Despite having to scale down considerably though, we managed to make a functional prototype of a product that has an interesting niche compared to mainstream calendar applications.

### Deliverables
Project Responsibilies:
- Taylor: Github OAuth integration, Database, Add/Modify/Delete Calendar
- Geoff: Add/Modify Tasks
- Garrett: CSS design, Add/Delete Events

__Proposal:__
Provide an outline of your project direction and the names of associated team members.
The outline should have enough detail so that staff can determine if it meets the minimum expectations, or if it goes too far to be reasonable by the deadline. Please include a general description of a project, and list of key technologies/libraries you plan on using (e.g. React, Three.js, Svelte, TypeScript etc.). Name the file proposal.md and submit a pull request.
Submit a PR to turn it in by Monday, September 27th at11:59 PM. Only one pull request is required per team.
Video Link:
https://youtu.be/sYE92Lx7pRM

There are no other scheduled checkpoints for your project.

#### Turning in Your Outline / Project
Submit a second PR on the final project repo to turn in your app and code. Again, only one pull request per team.

Deploy your app, in the form of a webpage, to Glitch/Heroku/Digital Ocean or some other service; it is critical that the application functions correctly wherever you post it.

The README for your second pull request doesn’t need to be a formal report, but it should contain:

1. A brief description of what you created, and a link to the project itself (two paragraphs of text)
2. Any additional instructions that might be needed to fully use your project (login information etc.)
3. An outline of the technologies you used and how you used them.
4. What challenges you faced in completing the project.
5. What each group member was responsible for designing / developing.
6. A link to your project video.

Think of 1,3, and 4 in particular in a similar vein to the design / tech achievements for A1—A4… make a case for why what you did was challenging and why your implementation deserves a grade of 100%.

## FAQs

- **Can I use XYZ framework?** You can use any web-based frameworks or tools available, but for your server programming you need to use Node.js. Your client-side scripting language should be either JavaScript or TypeScript.
Loading